Nginx 几个容易被忽略的性能参数
说到 Nginx 调优,网上翻来覆去就是那几个:worker_processes、worker_connections、keepalive_timeout。这些当然有用,但真正在压测里救过我的,反而是两个不太被提起的参数。
client_body_buffer_size
默认是 8k 或 16k。如果你的接口经常收到几十 KB 的 JSON,超出部分会被写到临时文件里,然后再读回来 —— 磁盘 IO 直接翻倍。
client_body_buffer_size 128k;
client_max_body_size 16m;
改完之后,我们那个上传接口的 P99 从 210ms 掉到了 90ms 左右。纯配置改动,不动代码。
open_file_cache
静态文件服务必开。每次请求都去 stat 一遍文件,文件一多就是灾难。
open_file_cache max=10000 inactive=30s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
别忘了压测
所有参数改完都要重新压。我们第一次调的时候把 keepalive_timeout 从 65 调到 15,结果 QPS 反而降了 —— 因为客户端复用连接的成本变高了。
调参不是越激进越好,是找到你那个业务场景的甜点。