副标题:某个应用的CPU使用率居然达到100%,我该怎么办?
引自 https://time.geekbang.org/column/140
Top命令重要系统性能指标:(top 后输入 1,查看顶部 %Cpu0 ... 的信息)
us: 用户态CPU使用率
sy: 内核态CPU使用率
ni: 低优先级用户态 CPU 时间
wa: 代表等待 I/O 的 CPU 时间
hi: 硬中断的 CPU 时间
si: 软中断的 CPU 时间
具体情况具体分析:
1. us和ni高,说明用户态进程占用了较多的CPU ,应该排查进程的性能问题。
2. sy高,说明内核态占用了较多的CPU ,应该排查内核线程或者系统调用的性能问题。
3. wa高,说明等待I/O的时间比较长,应该排查系统存储是不是出现了I/O问题。
4. hi和si,说明软中断或硬中断的处理程序占用了较多的CPU ,所以应该着重排查内核中的中断服务程序。
碰到CPU使用率升高的问题,你可以:
1. 借助top、pidstat ,确认引发CPU性能问题的来源
2. 再使用perf top,排查出引起性能问题的具体函数。