1
aladdindingding OP |
2
aladdindingding OP 更改了 ulimit 但是自己做并发测试还是会出现,既然 epoll 是 io 多路复用的方式,为啥 gevent 没有实现呢
|
3
neoblackcap 2021-05-18 16:32:58 +08:00
你问什么堵塞? IO 多路复用都会堵塞主线程
|
4
neoblackcap 2021-05-18 16:35:25 +08:00
@neoblackcap 修正,都是同步非堵塞。至于 epoll,可以尝试直接使用标准库里面的 asyncio
|
5
wwqgtxx 2021-05-18 17:02:40 +08:00 via iPhone
gevent 目前版本底层是用 libev/libuv 实现的,并不会使用系统 select,建议附上代码给大家复现一下
|
6
ch2 2021-05-18 17:03:16 +08:00
你可以用 select.epoll
|
7
monkeyNik 2021-05-18 17:05:37 +08:00
你可以来换我的库~封装了 select 、epoll 、kqueue
|
8
aladdindingding OP @neoblackcap python2 的项目,只能用 gevent 。用 asyncio 方便多了
|
9
aladdindingding OP @monkeyNik 大佬贴个地址呗
|
10
aladdindingding OP @wwqgtxx 主要是写代理,gevent 起了个 server 用户请求过来转发连接目标网站,目标网站有返回就立即写回给用户,之前这里的实现就是 gevent 的 select 一直遍历,看哪些有返回就写回给用户。
|
11
monkeyNik 2021-05-18 18:17:56 +08:00
@aladdindingding https://github.com/Water-Melon/Melon 有问题或者意见反馈可以加 QQ 群:756582294
|
12
julyclyde 2021-05-21 17:19:32 +08:00
1 你用 epoll 还是 poll 都不影响出打开文件数的限制
2 你先确定一下是打开文件数限制还是 poll 的 fd 数限制 3 ulimit 我猜你用错了 http://julyclyde.org/?p=578 |
13
aladdindingding OP @julyclyde 用的 gevent select,并发量大的情况下就会出现 select out of range
贴出的文档先 mark 了 下来研究 |