2

在使用 flask-socketio 进行一些测试时(在带有 gevent 的 uwsgi 上),我们注意到当添加更多客户端时,socketio 进程上的 cpu 使用率迅速达到 85%。奇怪的是,客户是在积极沟通还是只是在闲置等待,这似乎并不重要。

我使用 pyflame 来分析正在发生的事情,似乎超过 50% 的时间花在 server.py:_service_task 中,其中大部分在 sleep() 中,另一部分在 check_ping_timeout 中。我能够找到一些描述空闲等待循环的相同行为的 stackoverflow 帖子,但所描述的解决方案是引入 sleep(),_service_task 已经这样做了。

这发生在 ec2 t3.small 实例上的 150 个客户端上。奇怪的是,它不会发生在 50 个客户身上。(具有大约 300 个客户端的大型实例类型的类似行为)

这是正常的吗?我的主要问题是很难确定服务器是否过载。

4

0 回答 0