[英]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.