網(wǎng)站仿做軟件seo是什么意思職業(yè)
轉(zhuǎn):[譯] Linux 異步 I_O 框架 io_uring:基本原理、程序示例與性能壓測(2020)
新一代異步IO框架 io_uring | 得物技術(shù)
干翻 nio ,王炸 io_uring 來了 !!(圖解+史上最全)
io_uring vs epoll ,誰在網(wǎng)絡(luò)編程領(lǐng)域更勝一籌?-阿里云開發(fā)者社區(qū)
應(yīng)用線程通過mmap 機(jī)制更新SQ 來提交 SQE,以及監(jiān)控 CQ 的完成狀態(tài),應(yīng)用無需任何系統(tǒng)調(diào)用,就能提交和收割 I/O(submit and reap I/Os)。如果內(nèi)核線程的空閑時間超過了用戶的配置值,它會通知應(yīng)用,然后進(jìn)入 idle 狀態(tài)。這種情況下,應(yīng)用必須調(diào)用?io_uring_enter()
?來喚醒內(nèi)核線程。如果 I/O 一直很繁忙,內(nèi)核線程是不會 sleep 的。在日常的使用中一般建議選擇后兩種輪訓(xùn)模式,用戶線程輪存在用戶態(tài)到內(nèi)核態(tài)的切換,相比內(nèi)核輪詢存在一定的性能損耗;io_uring 之所以能達(dá)到超高性能的原因主要在以下幾個方面:
- Mmap 機(jī)制減少了 內(nèi)存復(fù)制
- 內(nèi)核輪詢模式下,沒有用戶態(tài)和內(nèi)核態(tài)的切換降低了損耗
- 基于SQ和CQ 機(jī)制下的數(shù)據(jù)競爭消除,即沒有并發(fā)競爭損耗