网站访问很慢?应用感觉很慢,是你的系统设置有问题,还是代码本身运行效率慢呢。总要拿出证据来。 查看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 文/外星人 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|