阅读量:4
一、启用慢查询日志
在Nginx配置文件(如/etc/nginx/nginx.conf)中添加或修改以下指令,设置慢查询阈值(如2秒)并指定日志路径:
http {
slowlog_path /var/log/nginx/slow.log;
slowlog_timeout 2s; # 超过2秒的请求会被记录
log_format slow '$remote_addr - $request - $request_time'; # 自定义日志格式
access_log /var/log/nginx/slow.log slow;
}
二、分析慢查询日志
- 命令行工具:
- 用
awk筛选慢查询(如响应时间超过2秒):
awk '$NF > 2 {print $0}' /var/log/nginx/slow.log。 - 用
sort/uniq统计高频慢查询:
awk '{print $7}' /var/log/nginx/slow.log | sort | uniq -c | sort -nr。
- 用
- 可视化工具:
- 使用GoAccess生成HTML报告,直观查看慢查询趋势。
- 通过ELK Stack(Elasticsearch+Logstash+Kibana)进行日志分析。
三、优化慢查询
- 数据库层面(若涉及数据库操作):
- 为高频查询字段添加索引。
- 优化SQL语句,避免
SELECT *,使用LIMIT限制返回数据量。
- Nginx配置优化:
- 调整
keepalive_timeout(默认75秒,可适当降低)。 - 启用缓存(如
proxy_cache)减少后端请求。 - 增加
worker_processes和worker_connections提升并发能力。
- 调整
- 系统层面:
- 监控服务器资源(CPU、内存、磁盘I/O),确保无瓶颈。
- 使用
tcpdump+Wireshark抓包分析网络延迟。
四、持续监控与报警
- 配置Prometheus+Grafana实时监控Nginx性能指标(如请求延迟、错误率),设置慢查询报警阈值。
- 定期通过
logrotate切割日志,避免文件过大影响性能。
参考来源:
以上就是关于“Debian Nginx日志中慢查询怎么办”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm