@
reusFork 怀疑到 epoll 是因为,用 python 的 trace 模块追踪 server 这块的时候,发现消耗时间最多的是:
.... 56.894 .... {method 'poll' of 'select.epoll' objects}
56秒那个是这段测试时间,跑 select.epoll.poll 这里总的消耗时间(平均的 * 次数)
在并发5,请求 100 次的时候 epoll.poll 一共消耗了 56 秒
但是顺序请求 100 次的时候,这里只有 3 秒多(另外一个不同时,这个方法被 call 的次数在鬓发的时候 2w 到 4w 不等,顺序的时候,只有 1w;平均消耗时间,并发的时候是 0.03s,顺序的时候 0.00s 就是小于 0.005s)
(上文的 25s ~ 35s 只是举例子)
另外,select 模块的位置是 /usr/lib64/python2.6/lib-dynload/
selectmodule.sorpm -qf 这个文件发现这个位置的文件是来自于 python-libs 这个包
以上均是客观事实了,能帮我小分析下么 :)