溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

遇見Linux系統(tǒng)CPU使用率過高怎么辦?

發(fā)布時間:2020-08-07 02:45:16 來源:ITPUB博客 閱讀:265 作者:大雄45 欄目:建站服務器
導讀 對于新手來說,可能各種進程管理工具用的還不算熟悉,那么遇見 Linux系統(tǒng)CPU系統(tǒng)使用率過高怎么辦?那么就學習一下吧。

遇見Linux系統(tǒng)CPU使用率過高怎么辦?

查看CPU使用

在  Linux 系統(tǒng)下,使用 top  命令查看 CPU 使用情況。

遇見Linux系統(tǒng)CPU使用率過高怎么辦?

%Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

CPU各類型占用詳解:

  • us(user):表示 CPU 在用戶運行的時間百分比,通常用戶 CPU 高表示有應用程序比較繁忙。典型的用戶程序有:數據庫、Web 服務器等。
  • sy(sys):表示 CPU 在內核態(tài)運行的時間百分比(不包括中斷),通常內核態(tài) CPU 越低越好,否則表示系統(tǒng)存在某些瓶頸。
  • ni(nice):表示用 nice 修正進程優(yōu)先級的用戶進程執(zhí)行的 CPU 時間。nice 是一個進程優(yōu)先級的修正值,如果進程通過它修改了優(yōu)先級,則會單獨統(tǒng)計 CPU 開銷。
  • id(idle):表示 CPU 處于空閑態(tài)的時間占比,此時,CPU 會執(zhí)行一個特定的虛擬進程,名為 System Idle Process。
  • wa(iowait):表示 CPU 在等待 I/O 操作完成所花費的時間,通常該指標越低越好,否則表示 I/O 存在瓶頸,可以用 iostat 等 命令做進一步分析。
  • hi(hardirq):表示 CPU 處理硬中斷所花費的時間。硬中斷是由外設硬件(如鍵盤控制器、硬件傳感器等)發(fā)出的,需要有中斷控制器參與,特點是快速執(zhí)行。
  • si(softirq):表示 CPU 處理軟中斷所花費的時間。軟中斷是由軟件程序(如網絡收發(fā)、定時調度等)發(fā)出的中斷信號,特點是延遲執(zhí)行。
  • st(steal):表示 CPU 被其他虛擬機占用的時間,僅出現在多虛擬機場景。如果該指標過高,可以檢查下宿主機或其他虛擬機是否異常。
排查用戶 CPU 使用率高

用戶 CPU 使用率反映了應用程序的繁忙程度,通常與我們自己寫的代碼息息相關。
操作步驟:
1)、通過 top 命令找到 CPU 消耗最多的進程號;

遇見Linux系統(tǒng)CPU使用率過高怎么辦?

2)、通過 top -Hp 進程號命令找到 CPU 消耗最多的線程號(列名仍然為 PID);

遇見Linux系統(tǒng)CPU使用率過高怎么辦?

3)、通過printf "%x\n" 線程號命令輸出該線程號對應的 16 進制數字;

遇見Linux系統(tǒng)CPU使用率過高怎么辦?

4)、PID進程在內核調用情況。如果是Java應用可通過 jstack 進程號 | grep 16進制線程號 -A 10 命令找到 CPU 消耗最多的線程方法堆棧。

非 Java 應用可使用 perf查看:

perf top -p 7574

如果提示perf: command not found,使用yum install perf安裝。

遇見Linux系統(tǒng)CPU使用率過高怎么辦?

perf是Linux 2.6+內核中的一個工具,在內核源碼包中的位置 tools/perf。
perf利用Linux的trace特性,可以用于實時跟蹤,統(tǒng)計event計數(perf stat);或者使用采樣(perf record),報告(perf report|script|annotate)的使用方式進行診斷。

本文原創(chuàng)地址: https://www.linuxprobe.com/linux-cpu-top.html

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI