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 ...
随机推荐
- CSS 定位
一.CSS 定位和浮动 它们代替了多年来的表格布局. 定位的思想很简单,相对于正常位置.相对于父元素.另一个元素甚至是浏览器窗口的位置. 浮动在 CSS1 中被首次提出.浮动不完全是定位, ...
- mysql 查询日志
1. 登录mysql mysql -u root -p; 2. 查看日志启用情况以及日志所在位置 show variables like 'log_%'; 结果示例如下 3. 找到对应的日志文件,保存 ...
- Query Designer中的特征限制(Characteristic Restrictions)、缺省值(Default Values)、自由特性(Free Characteristics)
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- iOS - Xcode 插件
Xcode 插件 Xcode 插件安装目录: ~/library/Application Support/Developer/Shared/Xcode/Plug-ins Xcode 插件大全 http ...
- sizeof()和strlen()
sizeof计算的是栈中大小 P { margin-bottom: 0.21cm; direction: ltr; color: rgb(0, 0, 0); text-align: justify } ...
- Git学习(4)基本操作
1.版本提交 首先,接着上个Git学习(3)继续 我们先修改test.txt文本内容,增加一些信息进去,然后保存: Add a new data 第一步:运行命令 git status 命令查看文件是 ...
- MongoDB:实体对象(javabean)转DBObject
代码仅供练习(反射,泛型): package utils; import java.lang.reflect.Field; import com.mongodb.BasicDBObject; impo ...
- Easy UI
首先去Easy UI官网下载离线包 导入要用的js模块 <!DOCTYPE html> <html> <head lang="en"> < ...
- [maven] maven变量
Maven内置变量说明: $${project.basedir}或{basedir} 项目根目录,即包含pom.xml文件的目录 ${project.version}或${version}表示项目版本 ...
- C++学习之:括号匹配与栈的使用
#include <stack> using std::stack ; 变量定义: stack<T> stackName ; 成员函数: 成员函数 功能 bool empt ...