linux积累--资源瓶颈分析

参考:https://blog.csdn.net/wslzwps00321/article/details/68064804

1 看负载

在top里输出load average aa bb cc ,为最近一分钟、最近5分钟、最近15分钟的进程平均等待时间, 如果这个参数值高,说明系统负载高.
负载高---->进程等待多---->有大量进程等待cpu或io–→当cup负载或者IO负载会造成系统负载高,造成系统瓶颈
一般认为超过0.70负载就比较高了(https://blog.csdn.net/yangrendong/article/details/89088580)

2 分析什么导致cup和io高,哪些进程cup消耗高

命令一:vmstat https://www.cnblogs.com/ftl1012/p/vmstat.html

  • b列高,说明等待的进程多
  • swap列频繁变化说明内存不足
  • io列变动频繁问起高说明IO可能是瓶颈 ,可在分析bi(磁盘读),bo(磁盘写)
    linux积累--资源瓶颈分析
    linux积累--资源瓶颈分析
    命令二:ps(ps aux | sort -k3nr | head -n 5)和top命令

top查找到使用cpu(%cpu列)最高的进程

  • top -H -p 14094 (-p监控指定进程 -H查看进程里各个线程状态) 14870
  • ps -efL

命令三:使用iostat分析io是否为瓶颈

可使用iostat分析io是否为瓶颈 ,可查看%idle列,如果该列很小,说明io很频繁,可能为io的瓶颈
linux积累--资源瓶颈分析

3 总结

  • IO瓶颈:通过top查看cpu的使用率,通过vmstat查看进程的等待数(b列), 通过iostat查看io情况。如果cpu的用率低、进程的等待数多,io的idle小,就说明系统IO为瓶颈
  • 内存不足:直接查看vmstat中swap,如果si和so都很大,说明系统内存不够。
  • CPU逻辑计算能力不足:如果io、swap和memery都比较小,但是负载高,说明在密集计算下cpu的逻辑计算能力不行

4 拓展

代码级的分析,分析热点函数调用测试,每次调用花费时间
使用工具gpref