Linux CPU負載狀態:%us/%sy/%ni/%id/%wa/%hi/%si/%st含義
縉哥哥發現用了雅黑的探針,在 Linux 的 CPU 狀態信息中發現,有“%us、%sy、%ni、%id、%wa、%hi、%si、%st”等狀態。不僅如此,你用 ssh 在服務器上使用“top”命令,也可以看到以上幾項參數狀態,這些是什么意思呢?縉哥哥今天查了一些文章,學習后跟大家分享一下!
CPU 相關監控項
- us:用戶空間占用CPU百分比(Host.cpu.user)
- sy:內核空間占用CPU百分比(Host.cpu.system)
- ni:用戶進程空間內改變過優先級的進程占用CPU百分比
- id:空閑CPU百分比(Host.cpu.idle)
- wa:等待輸入輸出的CPU時間百分比
- hi:硬件中斷
- si:軟件中斷
- st:實時
監控項名稱 | 監控項含義 | 單位 | 說明 |
---|---|---|---|
Host.cpu.idle | 當前空閑CPU百分比 | % | 當前CPU處於空閑狀態的百分比 |
Host.cpu.system | 當前內核空間占用CPU百分比 | % | 指系統上下文切換的消耗,該監控項數值比較高,說明服務器開了太多的進程或者線程 |
Host.cpu.user | 當前用戶空間占用CPU百分比 | % | 用戶進程對CPU的消耗 |
Host.cpu.iowait | 當前等待IO操作的CPU百分比 | % | 該項數值比較高說明有很頻繁的IO操作 |
Host.cpu.other | 其他占用CPU百分比 | % | 其他消耗,計算方式為(Nice + SoftIrq + Irq + Stolen)的消耗 |
Host.cpu.totalUsed | 當前消耗的總CPU百分比 | % | 指以上各項CPU消耗的總和,通常用於報警 |
系統平均負載監控項
除了前3組數字分別表示一分鍾、五分鍾、十五分鍾的平均進程數量;第四組數字,分母表示系統進程總數,分子表示正在運行的進程數;最后一個數字表示最近運行的進程ID。
監控項名稱 | 監控項含義 | 單位 |
---|---|---|
Host.load1 | 過去1分鍾的系統平均負載 | 無 |
Host.load5 | 過去5分鍾的系統平均負載 | 無 |
Host.load15 | 過去15分鍾的系統平均負載 | 無 |
好了,現在是不是就很清楚很明白了呢!現在縉哥哥是越來越愛 Linux 操作系統了,不僅能充分利用內存(《Linux 運行 WordPress 內存占用高?》),低配置也能跑各種程序,而且還安全!
top命令查看CPU狀態信息:%us、%sy、%ni、%id、%wa、%hi、%si、%st 表示的是什么意思
在服務器上使用top命令查看服務器資源使用情況
%Cpu(s): 10.6 us, 7.0 sy, 0.0 ni, 82.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
各項數據表示內容
us:用戶空間占用CPU百分比 sy:內核空間占用CPU百分比 ni:用戶進程空間內改變過優先級的進程占用CPU百分比 id:空閑CPU百分比 wa:等待輸入輸出的CPU時間百分比 hi:硬件中斷 si:軟件中斷 st:實時
top 命令詳解
top命令
top命令
[root@fpm_nginx /app]# top top - 12:19:58 up 3:45, 1 user, load average: 0.00, 0.02, 0.05 Tasks: 91 total, 1 running, 90 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 995896 total, 695140 free, 94524 used, 206232 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 731568 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6370 root 20 0 573936 17236 6096 S 0.3 1.7 0:05.52 tuned 9977 root 20 0 161892 2172 1548 R 0.3 0.2 0:00.73 top 第一行: top - 12:19:58 up 3:45 # 啟動了3小時45分鍾,當前時間系統時間-12:19:58 1 user # 同時在線的用戶 load average: 0.00, 0.02, 0.05 # 服務器的負載,1min的負載、5min的負載、15min的負載 第二行: Tasks: 91 total # 當前有91個工作任務 1 running # 1個正在執行的 90 sleeping # 90個在休眠的 0 stopped # 沒有被停止的 0 zombie # 沒有僵屍進程 第三行: %Cpu(s): 0.3 us, 0.3 sy # 用戶使用cpu的百分比 us user # 用戶態 sy system # 內核態 ni # 優先級 99.3 id # cpu空閑程度 0.0 wa # 等待的狀態的進程占cpu的百分比 0.0 hi # 硬中斷 0.0 si # 軟中斷 0.0 st # 虛擬機占用物理機的百分比
什么是中斷
中斷是指計算機運行過程中,出現某些意外情況需主機干預時,機器能自動停止正在運行的程序並轉入處理新的程序,處理完畢后又返回原被暫停的程序繼續運行。
什么是軟中斷呢?
軟中斷和硬中斷都有一個共同的特點,都會中斷當前操作,但是呢又有所區別,軟中斷當在進行一個任務的時候來了一個新的任務,就將先停止當前的任務,然后立馬將新的任務放入內存當中,延遲處理新任務,最后此 任務交由線程來進行處理。
為了滿足實時系統的要求,中斷處理應該是越快越好。linux為了實現這個特點,當中斷發生的時候,硬中斷處理那些短時間就可以完成的工作,而將那些處理事件比較長的工作,放到中斷之后來完成,也就是軟中斷 (softirq)來完成。
什么是硬中斷呢
同樣在執行一個進程的時候,又有新的任務請求訪問,cpu會立馬對當前進程進行處理,但是呢新的進程只能處於等待,等待上進程結束之后,才能對新進程進行處理
由與系統相連的外設(比如網卡、硬盤)自動產生的。主要是用來通知操作系統,系統外設狀態的變化。比如當網卡收到數據包的時候,就會發出一個中斷。我們通常所說的中斷指的是硬中斷(hardirq)。
top-的使用方法
[root@fpm_nginx ~]# yum -y install htop htop top -d # 指定動態變化時間 -p # 查看指定pid的進程 -u # 查看指定用戶的進程 -b # 輸出完整的內容 top -d1 -b -n2 >top.txt -n # 指定次數 # top的快捷鍵 h # 查看幫助 z # 高亮顯示 1 # 顯示所有cpu s # 設置刷新時間 b # 高亮顯示處於R狀態的進程 M # 按內存百分比排序輸出 P # 按CPU使用百分比排序輸出 R # 對排序進行反轉 f # 自定義顯示字段 k # kill掉指定的pid進程 W # 保存top環境設置 ~/.toprc B # 加粗 q # 退出 PID # 進程id USER # 用戶 PR # 優先級 NI # nice值 VIRT # 虛擬內存 RES # 真實內存 SHR # 共享內存 S # 進程的狀態 %CPU # 占用cpu的百分比 %MEM # 占用內存的百分比 TIME+ # 進程運行時間 COMMAND # 進程運行的命令