网站访问很慢?应用感觉很慢,是你的系统设置有问题,还是代码本身运行效率慢呢。总要拿出证据来。
查看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
文/外星人
本文暂时没有评论,来添加一个吧(●'◡'●)