最终结果展示图:

图解:响应时间在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日志分析的更多相关文章

  1. Eventlog Analyzer日志管理系统、日志分析工具、日志服务器的功能及作用

    Eventlog Analyzer日志管理系统.日志分析工具.日志服务器的功能及作用 Eventlog Analyzer是用来分析和审计系统及事件日志的管理软件,能够对全网范围内的主机.服务器.网络设 ...

  2. 关于syslog日志功能详解 事件日志分析、EventLog Analyzer

    关于syslog日志功能详解 事件日志分析.EventLog Analyzer 一.日志管理 保障网络安全 Windows系统日志分析 Syslog日志分析 应用程序日志分析 Windows终端服务器 ...

  3. linux常用的日志分析脚本

    linux实用的日志分析脚本 日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 /Dec/::: +] “GET /query/trendxml/district/tod ...

  4. Spring AOP在函数接口调用性能分析及其日志处理方面的应用

    面向切面编程可以实现在不修改原来代码的情况下,增加我们所需的业务处理逻辑,比如:添加日志.本文AOP实例是基于Aspect Around注解实现的,我们需要在调用API函数的时候,统计函数调用的具体信 ...

  5. 1002-谈谈ELK日志分析平台的性能优化理念

    在生产环境中,我们为了更好的服务于业务,通常会通过优化的手段来实现服务对外的性能最大化,节省系统性能开支:关注我的朋友们都知道,前段时间一直在搞ELK,同时也记录在了个人的博客篇章中,从部署到各个服务 ...

  6. mysql性能优化-慢查询分析、优化索引和配置 (慢查询日志,explain,profile)

    mysql性能优化-慢查询分析.优化索引和配置 (慢查询日志,explain,profile) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 ...

  7. Nginx 日志分析及性能排查

    Nginx 日志分析及性能排查 2017-03-04 Linux爱好者 (点击上方公众号,可快速关注) 作者:-外星人- my.oschina.net/362228416/blog/844713 如有 ...

  8. Java垃圾收集器——Parallel、G1收集器日志分析及性能调优示范

    开发过程中,经常需要对GC的垃圾收集器参数不断的进行动态调整,从而更充分的压榨机器性能,提升应用效率.本文将从常见的Parallel/G1垃圾收集器的GC日志着手,分析GC日志的具体含义,以及示范如何 ...

  9. 【转】gc日志分析工具

    性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...

随机推荐

  1. Python学习笔记-常用模块

    1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作 ...

  2. aliyun的yum源(国内速度极快)

    公网(家里宽带下载速度达到1-3.5M): http://mirrors.aliyun.com/repo/Centos-6.repo 内网(购买的阿里云主机可以访问): http://mirrors. ...

  3. print函数

    python中print既可以写成print a,也可以写成print(a) >>> a=1 >>> print a 1 >>> print(a) ...

  4. Hadoop安装指引

    pre.ctl { font-family: "Liberation Mono", monospace } p { margin-bottom: 0.25cm; line-heig ...

  5. Codeforces Round #356 (Div. 2)

    A. Bear and Five Cards time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  6. jdom xml解析

    import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import org.xml. ...

  7. Shell 语法之函数

    函数是被赋予名称的脚本代码块,可以在代码的任意位置重用.每当需要在脚本中使用这样的代码块时,只需引用该代码块被赋予的函数名称. 创建函数 格式 function name { commands } n ...

  8. 6/8/9/10/11 Sprint2 看板和燃尽图

     端午放假,大家都回家了 页面模块的大体设计,因所找的资料不全,还待改善

  9. E:Sudoku

    总时间限制: 2000ms 内存限制: 65536kB描述Sudoku is a very simple task. A square table with 9 rows and 9 columns ...

  10. javascript画直线和画圆的方法(非HTML5的方法)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...