性能问题排查
CPU 关注指标
| 指标 | 常用工具 | 关注点 | 备注 |
| 平均负载 | top watch -d uptime |
5 分钟平均负载 10 分钟平均负载 15 分钟平均负载 |
平均负载小于 cpu 核数 *80% |
| CPU 使用率 | top mpstat 1 pidstat -u 1 |
%usr %sys %iowait %soft %idle |
%idle 应大于 20% %usr 高说明有 CPU 密集型进程 %iowait 高说明有 IO 密集型进程 |
| 中断和上下文切换 | vmstat 1 pidstat -w 1 watch cat /proc/interrupts 1 |
in(中断) cs(上下文切换) cswch/s (主动) nvcswch/s(被动) |
I/O、内存等系统资源不足时,就会发生自愿上下文切换 大量进程都在争抢 CPU 时,就容易发生非自愿上下文切换 |
| CPU 缓存命中率 | cachestat 1 | TOTAL(IO 次数) MISSES(未命中) HITS(命中) |
命中率越高性能越好 |
内存关注指标
| 指标 | 常用工具 | 关注点 | 备注 |
| 内存利用率 | free -h | used free |
±buffer/cache |
| SWAP 换入/换出 | vmstat 1 5 sar -B 1 5 pidstat -r |
pgpgin/s pgpgout/s |
SWAP 置和内存置换速度 |
清理文件页、目录项、Inodes 等各种缓存命令:
1 | echo 3 > /proc/sys/vm/drop_caches |
IO 关注指标
| 指标 | 常用工具 | 关注点 | |
| 使用率 | iostat -d -k -x 1 3 | %util | %util |
| IOPS | r/s +w/s | 每秒 IO 请求数 | |
| 吞吐量 | rKB/s+wKB/s | 每秒 IO 请求大小 | |
| 响应时间 | r_await+w_await | ||
排查 IO 问题方法
- Top 命令,查看是否有 io 隐患
- Iostat 命令,确认 IO 存在瓶颈
- Pidstat –d 命令或 iotop 命令确认 IO 读写大的进程 PID
- Strace –f –p pid 命令,查询到具体读写的是哪个文件
本博客所有文章除特别声明外,均采用 CC-BY-SA-3.0 许可协议。转载请注明来源 张小剩的博客!