在 Debian 上排查 Nginx 日志写入慢 / 访问日志延迟 / 日志相关性能问题,可以按下面思路一步步查。
先明确是哪一种“慢”:
access.log)写入延迟error.log)不实时tail -f /var/log/nginx/access.log
同时用浏览器或 curl 访问,看是否实时。
常见导致“慢”的配置问题:
bufferaccess_log /var/log/nginx/access.log main buffer=32k flush=5s;
buffer + flush:日志不是实时写入✅ 临时调试可改为:
access_log /var/log/nginx/access.log main;
然后:
nginx -t
systemctl reload nginx
gzip 日志access_log ... gzip;
df -h
top
看 %wa 是否很高
iostat -x 1
或
iotop
如果日志盘 IO 很高,Nginx 会被拖慢。
ls -lh /var/log/nginx/
Debian 默认用 logrotate:
cat /etc/logrotate.d/nginx
手动测试:
logrotate -d /etc/logrotate.d/nginx
如果:
Nginx 会同步写日志,导致请求变慢。
✅ 推荐配置:
access_log /var/log/nginx/access.log main buffer=64k flush=1s;
nginx -T | grep -E "worker|access_log"
如果:
worker_processes 太少也会显得“慢”。
如使用:
syslogrsyslogaccess_log syslog:server=127.0.0.1:514 main;
网络日志一定慢。
# 1. 看日志是否实时
tail -f /var/log/nginx/access.log
# 2. 看配置
nginx -T | grep access_log
# 3. 看磁盘
df -h
iostat -x 1
# 4. 看进程
top
如果你愿意,可以把下面信息发我,我能更精准判断:
nginx -T 中的 access_log 配置df -h 和 iostat 输出我可以直接帮你定位是哪一层的问题。