问题排查性能优化

# 总览

  1. cpu
  2. 内存
  3. io包含磁盘io和网络io

# cpu

  频繁的上下文切换也会导致cpu使用率升高,vmstat和pidstat,vmstat反映系统总体指标,pidstat反映进程的详细指标。

# vmstat

  • r:就绪或正在执行进程数
  • b:处理不可中断睡眠状态状态进程数
  • in:1s内系统中断次数
  • cs:1s内上下文切换次数 img.png

# pidstat

  • cswch:主动上下文任务切换进程数
  • nvcswch:非主动上下文任务切换进程数 img.png

进程下线程情况pidstat -p {pid} -t img.png 同时结合top命令,top -o %CPU和top -Hp {pid}

  • us过高,用户程序占用cpu,结合进程ID找到线程ID是否存在死循环
  • sy过高,系统空间cpu使用率,结合stace -ff -o out 进程ID定位系统调用
  • si过高,软中断,进程获取不到资源自动切换,可能是网络问题
  • wa过高,cpu等待io时间,可能是频繁的磁盘读写

# 内存

top或者free,需要注意swap

# io

iostat或者pidstat -d -p {pid}或者lsof -p {pid}或者strace -p {pid}都可以找出io使用率