1. cpu飙高主要从以下几个指标值进行分析: load、cpu负载、disk负载、网络负载. 其中我们重点分析load和cpu两个指标.因为load 是对cpu各个状态的进程的汇总, 而cpu负载主要是对cpu时间分片的分组汇总.
2. cpu的进程主要分为以下几类D 不可中断睡眠态 TASK_UNINTERRUPTIBLE R 可执行态 TASK_RUNNINGS 可中断睡眠态 TASK_INTERRUPTIBLET 暂停态 TASK_STOPPEDt 跟踪态 TAKS_TRACEDZ 僵尸态 EXIT_ZOMBLEX 死亡态 EXIT_DEAD其中我们将重点分析 D和RD: 不可中断睡眠态 位于这个状态的线程处于睡眠中, 并且不允许被其他进程中断, 因此 无法使用kill -9杀死, 除非系统重启. 这种状态一般是由IO等待引起(网络IO、diskIO、外设IO)等, 出现的时间非常短暂, 大多很难被ps或top命令捕获. sleep不会占用任何cpu资源.R: 这种状态的进程都位于cpu的可执行队列中, 正在运行或正在等待运行.3. cpu的时间片主要分为以下几类user time 用户进程运行时间system time 系统进程运行时间idle time 空闲时间steal time 被抢占时间 ? 除idle time外 其余时间cpu都处于工作运行状态为了便于定位问题, 大多数的性能统计工具都将以上4类时间做了细化处理如下: (1).system timesystem time sy 内核空间占用cpu百分比softlRQ time si 软中断时间百分比hard irq time hi 硬中断时间百分比(2).user timeuser time us 用户进程空间中未改变过优先级的进程占用cpu时间百分比nice time ni 用户进程空间中修改过优先级的进程占用cpu时间百分比(3).steal timesteal time st 虚拟化时被其余vm窃取时间百分比(4).idle timewaiting time wa 空闲&等待I/O的时间百分比idle time id 空闲时间百分比4. load、cpu两种指标的计算公式load 统计: task_running + task_uninterruptible的线程数cpu 统计: (userTime + systemTime) / 四类时间和
参考文献:
1. https://developer.aliyun.com/article/774833?accounttraceid=c617616726254cf6ab702000d9b74cdapfkg
2. https://www.cnblogs.com/grimm/p/12331524.html
3.https://www.jianshu.com/p/896de1f1a7ff
4. https://www.jianshu.com/p/bba2419a05ef
5. https://www.jianshu.com/p/f357ab0c2d1a
网友评论