设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 手机 公司
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

Linux问题故障定位,看这一篇就够了(4)

发布时间:2019-04-01 15:25 所属栏目:117 来源:Lucien_168
导读:通过抓取了两张普通的火焰图,然后进行对比,并对差异部分进行标色:红色表示上升,蓝色表示下降。 差分火焰图是以当前(修改后)的profile文件作为基准,形状和大小都保持不变。因此你通过色彩的差异就能够很直观的

通过抓取了两张普通的火焰图,然后进行对比,并对差异部分进行标色:红色表示上升,蓝色表示下降。 差分火焰图是以当前(“修改后”)的profile文件作为基准,形状和大小都保持不变。因此你通过色彩的差异就能够很直观的找到差异部分,且可以看出为什么会有这样的差异。

使用方式:

  1. cd quick_location 
  2.  
  3. //抓取代码修改前的profile 1文件 
  4. perf record -F 99 -p pid -g -- sleep 30 
  5. perf script > out.stacks1 
  6.  
  7. //抓取代码修改后的profile 2文件 
  8. perf record -F 99 -p pid -g -- sleep 30 
  9. perf script > out.stacks2 
  10.  
  11. //生成差分火焰图: 
  12. ./FlameGraph/stackcollapse-perf.pl ../out.stacks1 > out.folded1 
  13. ./FlameGraph/stackcollapse-perf.pl ../out.stacks2 > out.folded2 
  14. ./FlameGraph/difffolded.pl out.folded1 out.folded2 | ./FlameGraph/flamegraph.pl > diff2.svg 

DEMO:

  1. //test.c 
  2. #include <stdio.h> 
  3. #include <stdlib.h> 
  4.  
  5. void foo3() 
  6.  
  7. void foo2() 
  8.   int i; 
  9.   for(i=0 ; i < 10; i++) 
  10.        foo3(); 
  11.  
  12. void foo1() 
  13.   int i; 
  14.   for(i = 0; i< 1000; i++) 
  15.      foo3(); 
  16.  
  17. int main(void) 
  18.   int i; 
  19.   for( i =0; i< 1000000000; i++) { 
  20.       foo1(); 
  21.       foo2(); 
  22.   } 
  23.  
  24. //test1.c 
  25. #include <stdio.h> 
  26. #include <stdlib.h> 
  27.  
  28. void foo3() 
  29.  
  30. void foo2() 
  31.   int i; 
  32.   for(i=0 ; i < 10; i++) 
  33.        foo3(); 
  34.  
  35. void foo1() 
  36.   int i; 
  37.   for(i = 0; i< 1000; i++) 
  38.      foo3(); 
  39.  
  40. void add() 
  41.   int i; 
  42.   for(i = 0; i< 10000; i++) 
  43.      foo3(); 
  44.  
  45. int main(void) 
  46.   int i; 
  47.   for( i =0; i< 1000000000; i++) { 
  48.       foo1(); 
  49.       foo2(); 
  50.       add(); 
  51.   } 

DEMO红蓝差分火焰图:

10. 案例分析

10.1 接入层nginx集群异常现象

通过监控插件发现在2017.09.25 19点nginx集群请求流量出现大量的499,5xx状态码。并且发现机器CPU使用率升高,目前一直持续中。

10.2 分析nginx相关指标

a) **分析nginx请求流量:

结论:

通过上图发现流量并没有突增,反而下降了,跟请求流量突增没关系。

b) **分析nginx响应时间

结论:

通过上图发现nginx的响应时间有增加可能跟nginx自身有关系或者跟后端upstream响应时间有关系。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读