有没有大佬来分析下这个测试结果 压测项目地址
# | Mode | Offload | Channel | Gbps | Retr | CPU Avg | CPU Max | Mem Avg | Mem Max |
---|---|---|---|---|---|---|---|---|---|
1 | Async | ❌ | ❌ | 10.6 | 10480 | 99.87 | 150.00 | 3.16 | 3.16 |
2 | Async | ❌ | ✅ | 13.3 | 4781 | 148.46 | 223.00 | 14.89 | 17.84 |
3 | Async | ✅ | ❌ | 18.4 | 0 | 60.21 | 88.90 | 20.86 | 20.86 |
4 | Async | ✅ | ✅ | 15.8 | 0 | 107.48 | 162.00 | 292.91 | 351.31 |
5 | Sync | ❌ | ❌ | 13.8 | 15493 | 87.10 | 131.00 | 1.00 | 1.00 |
6 | Sync | ❌ | ✅ | 17.2 | 6439 | 160.52 | 241.00 | 4.81 | 5.74 |
7 | Sync | ✅ | ❌ | 20.0 | 0 | 70.21 | 105.00 | 21.05 | 21.05 |
8 | Sync | ✅ | ✅ | 21.8 | 0 | 124.83 | 188.00 | 121.68 | 136.09 |
9* | Sync | ✅ | ❌ | 51.7 | 2609 | 152.49 | 229.00 | 36.97 | 36.97 |
10* | Sync | ✅ | ❌ | 17.8 | 0 | 54.35 | 82.40 | 20.62 | 20.62 |
* Test 9: 使用两个线程并发读,两个线程并发写,这种情况吞吐量最高
* Test 10: 使用io-uring
- Channel: Channel buffering
- Gbps: Bitrate
- Retr: Retransmissions
- CPU Avg/Max: usage in %
- Mem Avg/Max: usage in MB
问题1:为何用io-uring反而比同步的read更慢了,从实现来看,io-uring系统调用应该更少的?
1
共 3 条评论, 1 页
评论区
写评论https://radiki.dev/posts/compare-sync-uring/
这个是否能解惑?
是一个线程用一个独立的ioUring
--
👇
xiaoyaou: 看过一个类似的说多线程下io_uring比epoll慢的,他那里的原因就是多线程下io_uring共享了同一个io_context,会产生锁竞争并发不起来,解决办法就是每个线程建一个来消除锁。感觉你这个可能也有关系
看过一个类似的说多线程下io_uring比epoll慢的,他那里的原因就是多线程下io_uring共享了同一个io_context,会产生锁竞争并发不起来,解决办法就是每个线程建一个来消除锁。感觉你这个可能也有关系