worker 被 --timeout 杀掉之后会发生什么?对其他请求有多大影响?--preload 有什么用?--timeout 0 安全吗?这篇用真实的 gunicorn 与持续的请求流把答案量出来。
2 个 worker,不加 --preload /fast 331 个请求:失败 0,p99 6 ms,最大 12 ms | 慢请求:500 用 2575 ms | WORKER TIMEOUT 1 次,worker 启动 3 次 2 个 worker,--preload /fast 331 个请求:失败 0,p99 5 ms,最大 12 ms | 慢请求:500 用 2624 ms | WORKER TIMEOUT 1 次,worker 启动 3 次
上一篇:Gunicorn Worker 数量;下一篇:连接池大小。
第 147 篇看过 --timeout 在各种 worker 类型下的行为,这一篇看 worker 被杀之后对其他请求的影响。
1 个 worker,不加 --preload(导入 1.5 秒) /fast 186 个请求:失败 0,p99 4145 ms,最大 4149 ms | 慢请求:500 用 2560 ms | WORKER TIMEOUT 1 次,worker 启动 2 次 1 个 worker,--preload /fast 242 个请求:失败 0,p99 14 ms,最大 2623 ms | 慢请求:500 用 2598 ms | WORKER TIMEOUT 1 次,worker 启动 2 次 1 个 worker,导入很快 /fast 240 个请求:失败 0,p99 10 ms,最大 3040 ms | 慢请求:500 用 3000 ms | WORKER TIMEOUT 1 次,worker 启动 2 次
应用导入用 time.sleep 模拟重型依赖的加载时间。
--timeout 0,慢请求 4 秒:200,用 4014 ms,日志里 WORKER TIMEOUT 0 次