linux故障排查思路
1,方法论,带着这样的思路来思考
What:现象是什么样的
When:什么时候发生
Why:为什么会发生
Where:哪个地方发生的问题
How much:耗费了多少资源
How to do:怎么解决问题
2,CPU
如果你是做应用运维,针对应用程序,我们通常关注的是内核CPU调度器功能和性能。
线程的状态分析主要是分析线程的时间用在什么地方,而线程状态的分类一般分为:
on-CPU
:执行中,执行中的时间通常又分为用户态时间user和系统态时间sysoff-CPU
:等待下一轮上CPU,或者等待I/O、锁、换页等等,其状态可以细分为可执行、匿名换页、睡眠、锁、空闲等状态。- 如果大量时间花在CPU上,对CPU的剖析能够迅速解释原因;如果系统时间大量处于off-cpu状态,定位问题就会费时很多。但是仍然需要清楚一些概念:处理器核硬件线程CPU内存缓存时钟频率每指令周期数CPI和每周期指令数IPCCPU指令使用率用户时间/内核时间调度器运行队列抢占多进程多线程字长;
工具 | 描述 |
---|---|
uptime | 平均负载 |
vmstat | 包括系统范围的CPU平均负载 |
mpstat | 查看所有CPU核信息 |
top | 监控每个进程CPU用量 |
sar -u | 查看CPU信息 |
pidstat | 每个进程cpu用量分解 |
perf | cpu剖析和跟踪,性能技术统计 |
top
查看系统cpu使用情况mpstat -P ALL 1
查看所有cpu核信息vmstat 1
查看cpu使用情况以及平均负载pidstat -u 1 -p pid
进程cpu的统计信息perf top -p pid -e cpu-clock
跟踪进程内部函数级cpu使用情况
参考文献:https://mp.weixin.qq.com/s/DhSzjy3J-w2X3Vz7cXd1nw
原文地址:https://blog.csdn.net/qq_37263429/article/details/142350063
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!