PHP性能分析 - ngnx日志分析
最终结果展示图:

图解:响应时间在40ms以内的请求数占请求总量的7%,40到80ms的的请求数占32.9%,依次类推。。。
性能问题有很多种可能,普通的情况通过xhprof可查得主要的性能损耗。但有些情况却是通过xhprof不能分析出结果。如一个应用有N个URL,其中有一部分处于响应慢,一部分响应快,此时为了找出响应慢的URL就需要对nginx进行分析。
1:分析nginx日志确定是否存在此类问题。(获取PHP运行时间分布图,使用了shell、php)
LOGFILE=$1
if [ $# ne 2 ];then
ZONESIZE=$2
else
ZONESIZE=40
fi
cat $LOGFILE | /usr/local/php/bin/php -B "\$totaltime = 0; \$num = 0; \$i = 0; \$zonesize = $ZONESIZE;" -R '$t = explode(" ", $argn); if($t["8"] != 200) return ''; $url = $t["6"]; $time = substr(end($t), 1,-1) * 1000; $totaltime += $time; $num++; $timelevel = ceil($time/$zonesize); if($timelevel == 0) return ''; if($timelevel > 10) $timelevel = 10; $ret[$timelevel*$zonesize]++; echo "\n".$t["0"]."\t".$t["3"]."\t".$t["6"]."\t".substr(end($t), 1,-1);' -E 'echo "\r\n totaltime:".$totaltime."ms\r\n num:".$num."\r\n avg time:".($totaltime/$num)."ms\r\n" ; ksort($ret); echo "\r\n 饼图数据: \r\n"; foreach($ret as $k => $v) { if($i++ == 9 ) { echo "[\"".($k - $zonesize)."ms以上\",".$v."]"; } else {echo "[\"".($k - $zonesize)."-".$k."ms\",".$v."],";}} echo "\r\n";'
./tongji.sh {nginx日志绝对路径} > {保存结果的文件}
将饼图的数据复制到Highcharts展示页面左边的代码块,点头部的“Run"可在右册生成开头的饼图。
结果解读:
响应时间在160ms以内的请求占总数的75%左右,但所有请求的平均响应时间在210ms(数据部门提供的结果)以上;
结果分析:
系统主要是被10%响应超慢的访问拖累;只要解决这10%响应超慢的访问,系统平均响应时间将大幅减小
2:找出10%响应慢的URL,
代码略去
PHP性能分析 - ngnx日志分析的更多相关文章
- Eventlog Analyzer日志管理系统、日志分析工具、日志服务器的功能及作用
Eventlog Analyzer日志管理系统.日志分析工具.日志服务器的功能及作用 Eventlog Analyzer是用来分析和审计系统及事件日志的管理软件,能够对全网范围内的主机.服务器.网络设 ...
- 关于syslog日志功能详解 事件日志分析、EventLog Analyzer
关于syslog日志功能详解 事件日志分析.EventLog Analyzer 一.日志管理 保障网络安全 Windows系统日志分析 Syslog日志分析 应用程序日志分析 Windows终端服务器 ...
- linux常用的日志分析脚本
linux实用的日志分析脚本 日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 /Dec/::: +] “GET /query/trendxml/district/tod ...
- Spring AOP在函数接口调用性能分析及其日志处理方面的应用
面向切面编程可以实现在不修改原来代码的情况下,增加我们所需的业务处理逻辑,比如:添加日志.本文AOP实例是基于Aspect Around注解实现的,我们需要在调用API函数的时候,统计函数调用的具体信 ...
- 1002-谈谈ELK日志分析平台的性能优化理念
在生产环境中,我们为了更好的服务于业务,通常会通过优化的手段来实现服务对外的性能最大化,节省系统性能开支:关注我的朋友们都知道,前段时间一直在搞ELK,同时也记录在了个人的博客篇章中,从部署到各个服务 ...
- mysql性能优化-慢查询分析、优化索引和配置 (慢查询日志,explain,profile)
mysql性能优化-慢查询分析.优化索引和配置 (慢查询日志,explain,profile) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 ...
- Nginx 日志分析及性能排查
Nginx 日志分析及性能排查 2017-03-04 Linux爱好者 (点击上方公众号,可快速关注) 作者:-外星人- my.oschina.net/362228416/blog/844713 如有 ...
- Java垃圾收集器——Parallel、G1收集器日志分析及性能调优示范
开发过程中,经常需要对GC的垃圾收集器参数不断的进行动态调整,从而更充分的压榨机器性能,提升应用效率.本文将从常见的Parallel/G1垃圾收集器的GC日志着手,分析GC日志的具体含义,以及示范如何 ...
- 【转】gc日志分析工具
性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...
随机推荐
- Viking Village维京村落demo中的粒子距离消隐
Custom/DistanceFade shader 粒子雾似乎可以使用.尝试给面片套用该效果,但由于有顶点变形,效果不太好,要做些改动
- linux 用户态 内核态
http://blog.chinaunix.net/uid-1829236-id-3182279.html 究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在 ...
- 类函数和对象函数 PHP
1. bool class_exists ( string $class_name [, bool $autoload = true ] ) 检查指定的类是否已定义. 如果由 class_name ...
- Oracle简单的函数语言
函数:这里的函数相当于java中写好的一些方法,有名字,可以传递参数,实现某一项具体功能. 函数分为: 1.单行函数 1.字符函数 2.日期函数 3.数字函数 4.转换函数 2.分组函数(后面的章节再 ...
- SQL疑难杂症【4 】大量数据查询的时候避免子查询
前几天发现系统变得很慢,在Profiler里面发现有的SQL执行了几十秒才返回结果,当时的SQL如下: 可以看得出来,在652行用了子查询,恰巧目标表(QS_WIP)中的记录数为100000000+, ...
- Python生成字体
Python version 2.7 required, which was not found in the registry 参考:http://www.cnblogs.com/min0208 ...
- Nginx模块之————RTMP模块在Ubuntu 14.04年的设置与搭建
Nginx的设置,RTMP在Ubuntu 14.04 https://www.vultr.com/docs/setup-nginx-rtmp-on-ubuntu-14-04
- jQuery实现两个按钮的位置互换
页面上有2个按钮A和B.点击按钮A和按钮B互换位置 ,点击按钮B和按钮A互换位置.应该如何实现? html代码如下: <body> <!--页面上有2个按钮A和B. 点击按钮A和按钮 ...
- php 对多维数组排序array_multisort
php 对多维数组排序array_multisort 排序顺序标志: SORT_ASC - 按照上升顺序排序 SORT_DESC - 按照下降顺序排序 排序类型标志: SORT_REGULAR - 将 ...
- Cryptopp iOS 使用 RSA加密解密和签名验证签名
Cryptopp 是一个c++写的功能完善的密码学工具,类似于openssl 官网:https://www.cryptopp.com 以下主要演示Cryptopp 在iOS上的RSA加密解密签名与验证 ...