1
est 2019-03-31 19:07:38 +08:00
listen 一般 200 就够用了。你这是堵了多少没处理过来的请求。。。还是贵站业务特别繁忙?
举个例子, workers = 144 listen = 100 这个配置我 4 个物理机抗过 4w qps 的的峰值。 |
2
jianjian001 2019-03-31 20:48:24 +08:00
有阻塞,没释放链接?贴个 简化的 代码看看。
|
3
arrow8899 2019-03-31 20:56:55 +08:00
没有遇到过。
检查下代码吧,应该是哪里 hang 住了 |
4
xing393939 OP @est 如果 listen 设 100 都没问题,那大概是程序容易卡了,关键是这个问题不好排查和定位。
|
5
xing393939 OP @jianjian001 我简单说下程序吧,用的 flask+pymongo+redis,这三个都是单独的机器环境,从 zabbix 上看机器状态没有异常。接口逻辑也是比较简单的,先查 redis,没有则查 mongo。
|
6
Lax 2019-03-31 21:07:54 +08:00
queue 就是个水管子,出水口(程序处理能力)太小就容易堵。
看看为什么处理能力不行吧 |
7
est 2019-03-31 21:11:02 +08:00
@xing393939 设置 100 其实很夸张了。
假如你一个请求 10ms 完成(实际肯定不止这个数),那么 100 个 queue,最后一个请求也得 1s 之后才能开始处理。。。对用户而言这就是灾难吧。。你 1025 长度的 queue,最后一个请求就是 10s 之后才会处理了。。 看下接口平均响应时间呢。 |