簡體   English   中英

使用 io_uring 進行多路復用

[英]Multiplexing with io_uring

我最近使用 epoll 編寫了一個簡單的 TCP 服務器,但我想探索其他高性能多路復用機制,為此我遇到了 io_uring,並計划使用它制作另一個簡單的 TCP 服務器。

但是,我在https://kernel.dk/io_uring.pdf 中讀到 io_uring 的條目數限制為 4096,這似乎意味着理論上我將無法擁有超過該數量的持久連接。

據我了解,通常我會使用epoll_wait()類的東西來等待 epoll 的事件,而是在 io_uring 中提交特定請求,並在請求完成/失敗時收到通知,這是否意味着我可以提交最多4096 read() 請求例如?

我誤解了 io_uring 的用例還是誤解了如何使用它?

在我鏈接的同一個文件中,它說:

通常,應用程序會要求一個給定大小的環,並且假設這個大小直接對應於應用程序可以在內核中掛起的請求數。 但是,由於 sqe 生存期只是實際提交的生存期,因此應用程序可能會驅動比 SQ 環大小指示的更高的待處理請求計數。

這正是您在大量套接字上偵聽消息的情況下所做的 - 只是您一次可以發送的提交數量上限為 4096。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM