火焰图:全局视野的Linux性能剖析

Posted OSC开源社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了火焰图:全局视野的Linux性能剖析相关的知识,希望对你有一定的参考价值。

文章背景

日常的工作中,会收到一堆CPU使用率过高的告警邮件,遇到某台服务的 CPU被占满了,这时候我们就要去查看是什么进程将服务器的CPU资源占用满了。通常我们会通过 top或者 htop来快速的查看占据CPU最高的那个进程,如下图:

这里是通过一个普通的服务器做演示使用,如图所示当前服务器占用CPU最高的是一个叫做 kube-apiserver命令运行的一个进程,该进程的PID为 25633,当然你可能遇到一个服务器上运行有多个服务,想快速知道占用率最高的那几个进程的话,你可以使用以下命令:
ps aux|head -1;ps -aux | sort -k3nr | head -n 10 //查看前10个最占用CPU的进程
ps aux|head -1;ps -aux | sort -k4nr | head -n 10 //查看前10个最占用内存的进程
但是通过以上的方法获取到服务器占用资源的进程之后,还是 不知道CPU使用究竟耗时在哪里,不清楚瓶颈在哪里,此时就可以通过 Linux系统的性能分析工具 perf分析,分析其返回的正在消耗CPU的函数以及调用栈。然后可以通过解析 perf采集的数据,渲染到火焰图

以上是关于火焰图:全局视野的Linux性能剖析的主要内容,如果未能解决你的问题,请参考以下文章

火焰图(Flame Graphs)

Linux性能分析专题屠龙宝刀绘制传说中的cpu火焰图

perf + 火焰图分析程序性能

[转]perf + 火焰图分析程序性能

perf + Flame Graph火焰图分析程序性能

033_linux操作系统火焰图探测系统性能