pwrliang

pwrliang

V2EX 第 124980 号会员,加入于 2015-06-30 23:44:47 +08:00
今日活跃度排名 5838
[讨论] 为何 epoll_wait 有性能瓶颈?
Linux  •  pwrliang  •  44 天前  •  最后回复来自 pwrliang
16
Kodi+Plex on raspberry pi 遇到问题
问与答  •  pwrliang  •  2020-05-24 09:54:36 AM
大家觉得买下这个 MBP17 值吗?
Apple  •  pwrliang  •  2020-05-01 19:19:47 PM  •  最后回复来自 leon912
30
[求助]一道算法题-多括号匹配
算法  •  pwrliang  •  2020-04-05 21:00:04 PM
有没有一款软件通过网络能够播放私有音乐?
NAS  •  pwrliang  •  2019-12-20 20:36:52 PM  •  最后回复来自 pwrliang
6
工作内容不喜欢怎么办
职场话题  •  pwrliang  •  2019-02-14 13:36:51 PM  •  最后回复来自 RoyL
15
迫于 xx 困难,安利下 OpenConnect
分享发现  •  pwrliang  •  2020-03-09 12:33:29 PM  •  最后回复来自 DopaminePlz
20
如何优化 Samba 在互联网下的性能?
NAS  •  pwrliang  •  2019-01-12 21:46:09 PM  •  最后回复来自 pwrliang
6
分享 Pixel3 与 Pixel3XL 优惠卷
推广  •  pwrliang  •  2018-12-21 22:14:36 PM
记一次真实发生的 - 电信计费错误
全球工单系统  •  pwrliang  •  2018-11-02 15:54:05 PM  •  最后回复来自 pwrliang
23
pwrliang 最近回复了
36 天前
回复了 iamlier 创建的主题 职场话题 是否要去读博
读啊,我几年也 29 ,硕士毕业工作了 3 年润去美国读了。读博的话有靠谱的导师是很重要的,确保能给你指导,能做出东西来。
44 天前
回复了 pwrliang 创建的主题 Linux [讨论] 为何 epoll_wait 有性能瓶颈?
@zizon 破案了,确实是这个问题,Linux 提供的 benchmark 有问题,只有 1 个 writer 不能够喂饱这么多 reader ,导致 reader 等待,造成频繁的 context switch 。[我改了下 benchmark]( https://github.com/pwrliang/linux/blob/master/tools/perf/bench/epoll-wait.c),现在每个线程都能够达到 60w 的 throughput
```
./perf bench epoll wait -t 14 -r 2 -w 14 -m
# Running 'epoll/wait' benchmark:
Run summary [PID 5905]: 14 threads monitoring on 64 file-descriptors for 2 secs.

[thread 0] fdmap: 0x1aec590 ... 0x1aec68c [ 648960 ops/sec ]
[thread 1] fdmap: 0x1aec920 ... 0x1aeca1c [ 640540 ops/sec ]
[thread 2] fdmap: 0x1aeccb0 ... 0x1aecdac [ 635712 ops/sec ]
[thread 3] fdmap: 0x1aed040 ... 0x1aed13c [ 650944 ops/sec ]
[thread 4] fdmap: 0x1aed3d0 ... 0x1aed4cc [ 638048 ops/sec ]
[thread 5] fdmap: 0x1aed760 ... 0x1aed85c [ 648064 ops/sec ]
[thread 6] fdmap: 0x1aedaf0 ... 0x1aedbec [ 632416 ops/sec ]
[thread 7] fdmap: 0x1aede80 ... 0x1aedf7c [ 647144 ops/sec ]
[thread 8] fdmap: 0x1aee210 ... 0x1aee30c [ 628896 ops/sec ]
[thread 9] fdmap: 0x1aee5a0 ... 0x1aee69c [ 634521 ops/sec ]
[thread 10] fdmap: 0x1aee930 ... 0x1aeea2c [ 640032 ops/sec ]
[thread 11] fdmap: 0x1aeecc0 ... 0x1aeedbc [ 626093 ops/sec ]
[thread 12] fdmap: 0x1aef050 ... 0x1aef14c [ 645843 ops/sec ]
[thread 13] fdmap: 0x1aef3e0 ... 0x1aef4dc [ 643849 ops/sec ]

Averaged 640075 operations/sec (+- 0.33%), total secs = 2
```
44 天前
回复了 pwrliang 创建的主题 Linux [讨论] 为何 epoll_wait 有性能瓶颈?
@wslzy007 您好,现在我不太理解的是为何 epoll 的性能随着线程的增加,每个线程的处理能力在减少。
举个例子,加入 1 个线程每秒能完成 10w 次 epoll ,那么 4 个线程应该能达到 40w (没有超过核数的情况下),但是实际测试不是这样的。给我的感觉是 Linux 的 epoll 实现有个全局锁,导致总体的性能是有极限的。
44 天前
回复了 pwrliang 创建的主题 Linux [讨论] 为何 epoll_wait 有性能瓶颈?
@LeeReamond 感谢回复
1. 看了下,每个核的 sys 时间在 20 左右
2. epoll_create 会创建一个独立的 eventpoll 在内核,这个 benchmark 创建的 epoll 对象是隔离的,线程间不会共享同一个 epfd
3. epfd 和读线程的数量还没有达到核数,软中断应该是每个核都有一个进程叫 ksoftirqd 来处理,所以核数越多,irq 的处理能力应该越高
4. 红黑树是在管理多个 fd 用到的,在 epoll_ctl 才会访问
5. 这个 benchmark 的实现,epoll 监控的是 eventfd ,这个 fd 是内核的一个计数器,所以不会走网络的,不知道您提到的北桥是什么意思呢?
44 天前
回复了 pwrliang 创建的主题 Linux [讨论] 为何 epoll_wait 有性能瓶颈?
@wslzy007 在做网络方面的调研,测试基于 Kernel space 通信方法的极限性能。目前发现了瓶颈,但是不知道原因为何。
系统调用的开销大概是 200 nano second ,`./perf bench syscall basic`,并且这个开销不随着调用进程的数量增加而增加。
但是 epoll_wait 看起来扩展性很差,在达到 CPU 核数前性能就直线下降了。
2020-08-21 12:20:11 +08:00
回复了 BlackEagles 创建的主题 职场话题 iOS 开发一枚,感觉离失业不远了
@choudidi 杠一下,修理 BB 机技术一流会失业?
2020-08-12 09:55:51 +08:00
回复了 win7pro 创建的主题 问与答 从深圳到辽宁兴城,什么样的交通方案最好?
我在兴城上的本科,可以先到葫芦岛,然后大客到兴城
2020-07-20 18:51:08 +08:00
回复了 taogen 创建的主题 问与答 driver old 的 YouTube 频道被封了,连 gmail 也注销了。。
卖衣服被人肉了?
2020-07-07 17:41:04 +08:00
回复了 heguangyu5 创建的主题 PHP 还不会用 Wireshark 抓 https 包的进来看看
很好很好,请出一个 Mac 上抓任意 app 的教程,我想看看我司装的本地监控程序都往上面传些什么。
2020-07-03 16:43:52 +08:00
回复了 NewIPIsComing 创建的主题 路由器 請問大家覺得 GL.iNet 這種 300 塊的 OpenWRT 路由怎麼看
我手中有 ar750,在美国买的,花了 50 刀吧,已经买回来吃灰了…性能太差了,科学上网也不方便,没有透明代理,只能全局
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1338 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 23:25 · PVG 07:25 · LAX 16:25 · JFK 19:25
Developed with CodeLauncher
♥ Do have faith in what you're doing.