JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

系统优化之Nginx性能排查,常用日志分割

wys521 2024-09-12 23:26:17 精选教程 44 ℃ 0 评论

网站访问很慢?应用感觉很慢,是你的系统设置有问题,还是代码本身运行效率慢呢。总要拿出证据来。

查看nginx请求处理的时间

在nginx log 里面加上$request_time,就能在日志中查看到nginx请求所使用的时间,根据这个可以快速找到慢应用请求。

例如修改nginx.conf

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent $request_body "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for" "$request_time"';


常用日志分割命令

主要用到命令如下

cat:输入文件内容

grep:过滤文本

'sort':排序

'uniq':去重

'awk':文本处理

获取pv数

$ cat /usr/local/nginx/logs/access.log | wc -l

获取ip数

$ cat /usr/local/nginx/logs/access.log | awk '{print $1}' | sort -k1 -r | uniq | wc -l

获取最耗时的请求时间、url、耗时,前10名, 可以修改后面的数字获取更多,不加则获取全部

$ cat /usr/local/class/logs/access.log | awk '{print $4,$7,$NF}' | awk -F '"' '{print $1,$2,$3}' | sort -k3 -rn | head -10

获取某一时刻的请求数量,可以把秒去掉得到分钟的数据,把分钟去掉得到小时的数据,以此类推

$ cat /usr/local/class/logs/access.log | grep 2017:13:28:55 | wc -l

获取每分钟的请求数量,输出成csv文件,然后用excel打开,可以生成柱状图

$ cat /usr/local/class/logs/access.log | awk '{print substr($4,14,5)}' | uniq -c | awk '{print $2","$1}' > access.csv

如下图

PS: 也可以用gnuplot生成图片

后记:统计实时数据,可以使用ngxtop 来查看,安装起来也很简单,安装之后,先进到nginx目录,然后再运行,-c 指定配置文件,-t 刷新频率,单位为秒

$ pip install ngxtop //安装ngxtop

$ cd /usr/local/nginx

$ ngxtop -c conf/nginx.conf -t 1

文/外星人

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表