| CPU性能工具 | ||
|---|---|---|
| 性能指标 | 性能工具 | 说明 |
| 平均负载 | uptime top /proc/loadavg | uptime最简单;top提供了更全的指标;/proc/loadavg常用于监控系统。 system load avg over the last 1, 5 and 15 minutes |
| 系统CPU使用率 | vmstat mpstat top sar /proc/stat | top、vmstat、mpstat 只可以动态查看,而sar还可以记录历史数据;/proc/stat是其他性能工具的数据来源,也常用于监控 |
| 进程CPU使用率 | top ps pidstat htop atop | top和ps可以按CPU使用率给进程排序;而pidstat只显示实际用了CPU的进程;htop和atop以不同颜色显示更直观 |
| 系统上下文切换 | vmstat | 除了上下文切换次数,还提供运行状态和不可中断状态进程的数量 |
| 进程上下文切换 | pidstat | 注意加上-w选项 |
| 软中断 | top mpstat /proc/softirqs | top提供软中断CPU使用率;/proc/softirqs和mpstat提供了各种软中断在每个CPU上的运行次数 |
| 硬中断 | vmstat /proc/int errupts | vmstat提供总的中断次数;/proc/interrupts提供各种中断在每个CPU上运行的累积次数 |
| 网络 | dstat sar tcpdump | dstat和sar提供总的网络接收和发送情况;tcpdump则是动态抓取正在进行的网络通讯 |
| CPU缓存 | perf | 使用 perf stat 子命令 |
| CPU数 | lscpu /proc/cpuinfo | lscpu更直观 |
| 事件剖析 | perf、火焰图、execsnoop | perf和火焰图用来分析热点函数以及调用栈,execsnoop用来监测短时进程 |
| 动态追踪 | ftrace bcc、 systemtap | ftrace用于跟踪内核函数调用栈;bcc和systemtap则用于跟踪内核或应用程序的执行过程(注意bcc要求内核版本>=4.1) |
工具不在多,选择几个顺手的使用即可。