我有一个同步的,单进程的web应用程序,CPU限制为2200个QPS。当我使其多处理时,QPS只显示有限的增加:
top
显示CPU为100%top
显示每个进程的60%top
显示每个进程的30%我不明白这些数字。为什么两个进程不把QPS乘以2?四道工序?在
Falcon
,它是这个example from the documentation的复制粘贴gunicorn
后面运行。以下是以下命令行:
gunicorn things:app
gunicorn things:app -w 2
gunicorn things:app -w 4
localhost
上运行。测试机有16个内核,因此web应用程序的每个进程和负载测试的每个进程都使用自己的内核。在正如dano建议的那样,我在GET处理程序中插入了一个time.sleep
。结果如下:
似乎您已经达到了
locust
向服务器发送查询的速度限制(或者可能是gunicorn将请求分发给工作人员的能力)。由于没有网络延迟,而且服务器几乎不做任何工作(因此响应时间非常快),所以您可以像rocast发送查询一样快速地响应。在gunicorn文件strongly recommend running it behind NGINX。也许可以试试看这对性能的影响。在
相关问题 更多 >
编程相关推荐