在日常运维中,我们通过nginx实现了日常系统性能监控。结合nginx的参数配置,通过命令来统计请求的信息,通过这些信息来分析系统的慢请求,慢请求中最长时间的请求,慢请求中请求最频繁的请求等数据。通过这些数据来优化系统,提升性能。
nginx参数配置
增加了请求时间–request_time 的输出
log_format main '$remote_addr - $remote_user [$time_local] "$request" "ddpass:$http_x_ddpaas_requestid" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" **$request_time** $http_x_request_id';
统计命令
- 查询请求时间超过1秒钟的请求
more access.log | awk '$(NF-1)>1{print $0}' > slow.log
- 查询最慢的50个请求
more slow.log | awk '{print $(NF-1),$0}' | sort -nr | head -n 50
- 统计慢请求中请求次数排行
# 截取相同的请求路径地址
more slow.log | awk '{split($8,res,"?");print res[1]}' > url.log
# 对请求地址进行排序,取前20 位
more url.log | awk '{print $0}' | sort | uniq -c | sort -rn | head -n 20