Linux 性能工具图谱

在 Linux 不同子系统出现性能问题后,应该用什么样的工具来观测和分析:

linux gpu 性能测试软件 linux常用的性能测试工具_性能分析工具

 

 

几个支持指标较多的工具,如 top、vmstat和 pidstat

linux gpu 性能测试软件 linux常用的性能测试工具_linux gpu 性能测试软件_02

 

 

stress 是一个 Linux 系统压力测试工具

sysbench 是一个多线程的基准测试工具,一般用来评估不同系统参数下的数据库负载情况。

ab(apache bench)是一个常用的 HTTP 服务性能测试工具

 sysstat 包含了常用的 Linux 性能工具,用来监控和分析系统的性能。这个包包含两个命令 mpstat 和 pidstat

mpstat 是一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所有 CPU 的平均指标。
pidstat 是一个常用的进程性能分析工具,用来实时查看进程的 CPU、内存、I/O 以及,上下文切换等性能指标 

pidstat -w ,你就可以查看每个进程上下文切换的情况了。

pidstat 默认显示进程的指标数据,加上 -t 参数后,才会输出线程的指标

 pidstat,加上 -d 参数,以便输出 I/O 使用情况

vmstat 是一个常用的系统性能分析工具,主要用来分析系统的内存使用情况,也常用来分析 CPU 上下文切换和中断的次数

vmstat 只给出了系统总体的上下文切换情况,要想查看每个进程的详细情况,就需要使用pidstat 了。

使用 ps 或者 top 可以查看进程的状态,这些状态包括运行、空闲、不可中断睡眠、可中
断睡眠、僵尸以及暂停等

perf 是 Linux2.6.31 以后内置的性能分析工具。它以性能事件采样为基础,不仅可以分析系统的各种事
件和内核性能,还可以用来分析指定应用程序的性能问题

第一种常见用法是 perf top,类似于 top,它能够实时显示占用 CPU 时钟最多的函数或者指令,因此可以用来查找热点函数,

第二种常见用法,也就是 perf record 和 perf report。 perf top 虽然实时展
示了系统的性能信息,但它的缺点是并不保存数据,也就无法用于离线或者后续的分析。
而 perf record 则提供了保存数据的功能,保存后的数据,需要你用 perf report 解析展
示。

碰到 iowait 升高时,需要先用 dstat、pidstat 等工具,确认是不是磁盘 I/O 的问
题,然后再找是哪些进程导致了 I/O

用 pstree 就可以用树状形式显示所有进程之间的关系,查找一个进程的父进程

execsnoop 就是一个专为短时进程设计的工具。它通过 ftrace 实时监控进程的 exec() 行
为,并输出短时进程的基本信息,包括进程 PID、父进程 PID、命令行参数以及执行的结

dstat 是一个新的性能工具,它吸收了 vmstat、iostat、ifstat 等几种工具的优点,
可以同时观察系统的 CPU、磁盘 I/O、网络以及内存使用情况

从 /proc/interrupts 这个只读文件中读取中断

 /proc/stat 提供的就是系统的 CPU 和任务统计信息。

cat /proc/softirqs 提供了软中断的运行情况;
cat /proc/interrupts 提供了硬中断的运行情况。

sar 是一个系统活动报告工具,既可以实时查看系统的当前活动,又可以配置保存和报
告历史统计数据。
hping3 是一个可以构造 TCP/IP 协议数据包的工具,可以对系统进行安全审计、防火墙
测试等。
tcpdump 是一个常用的网络抓包工具,常用来分析各种网络问题。

watch 命令,就可以定期运行一个命令来查看输出;如果再加上 -d 参数,还可以高亮出
变化的部分,从高亮部分我们就可以直观看出,哪些内容变化得更快