CPU狀態信息us,sy等含義


一.概述概述

比如一秒內有100個cpu時間片,這個cpu時間片就是cpu工作的最小單位。那么這100個cpu時間片在不同的區域和目的進行操作使用,就代表這個區域所占用的cpu時間比。也就是這里得出的cpu時間百分比。

如下為TOP命令看到的信息,每個參數將表示cpu時間片被占用的分布情況,如下所有相加為100%。

如下,%Cpu(s)計算為所有,多少個核心都是100%
顯示的進程的%CPU為單個核心,占滿一個核心為100%,2個就是200%

二.詳解

us和sy

us 用戶空間占用CPU百分比
sy 內核空間占用CPU百分比

用戶 CPU 使用率,包括用戶態 CPU使用率(user)和低優先級用戶態 CPU使用率(nice),表示 CPU 在用戶態運行運行的時間百分比用戶 CPU 使用率高,通常說明有應用程序比較繁忙。

系統 CPU 使用率,表示 CPU 在內核態運行時間百分比(不包括中斷)。系統 CPU 使用率高,說明內核比較繁忙。

4G的進程地址空間(內存)被人為的分為兩個部分--用戶空間與內核空間。用戶空間從0到3G(0xc0000000),內核空間占據3G到4G。用戶進程通常情況下只能訪問用戶空間的虛擬地址,不能訪問內核空間的虛擬地址。例外情況只有用戶進程進行系統調用(代表用戶進程在內核態執行)等時刻可以訪問到內核空間。

所以內核的操作占用內核空間,進程的操作占用進程空間

用戶空間對應進程,所以每當進程切換,用戶空間就會跟着變化;而內核空間是由內核負責映射,它並不會跟着進程變化,是固定的。內核空間地址有自己對應的頁表,用戶進程各自有不同的頁表。

每個進程的用戶空間都是完全獨立、互不相干的。

ni

優先級具體說明

用戶進程空間內,改變過優先級的進程占用CPU百分比

進程都有優先級的,如果調節優先級,需要耗費cpu的時間段的,那就消耗這個ni

如果ni很高,那就是進程可能頻繁調換優先級(當前理解)

id

剩下的id就是除了id以為占用cpu時間片的空閑部分,相當於空間cpu的百分比。

wa

wa指的是CPU等待磁盤寫入完成的時間,就是說前提是要進行IO操作。

在進行IO操作的時候,如果程序是阻塞的,他cpu會等待數據寫入磁盤才能完成寫操作。所以這個時候cpu等待的時間就是wa。

舉例:
使用cp復制,如果文件夾中有多個文件,他每復制一次,cpu就指揮文件復制,但是硬盤讀寫的時候,cpu是要等待的,這時候cpu不動作只是等待。

所以如果一台機器看到wa特別高,那么一般說明是磁盤IO出現問題,可以使用iostat等命令繼續進行詳細分析。

hi和si

軟硬中斷具體說明

如果程序沒有問題,那是沒有hi和si的。當鍵盤打字,cpu就要去立即處理這個東西,那就是中斷,意味着中斷當前操作來處理需要立即處理的東西。

軟中斷和硬中斷理論一樣,但是軟件的,具體看詳細說明

st

st的解釋是實時,但是與虛擬化有關

比如centos上搞kvm(虛擬機,類似win的vmver),那在本機查詢st很高

當前理解為,為虛擬機提供的cpu時間片占用數。比如開啟2個虛擬機,那虛擬機用的cpu還是由真機提供的,這里應該是應用於虛擬化的數量。

查看每一個cpu的狀態mpstat
mpstat -P ALL

irq: 硬件中斷CPU用量;
sofr: 軟件中斷CPU用量;
iowait:就是上面說的wa
steal: 耗費在服務其他租戶的時間(不懂);
guest: 花在訪客虛擬機的時間(不懂);

三.總結

用戶 CPU 和 Nice CPU 高,說明用戶態進程占用了較多的 CPU,所以應該着重排查進程的性能問題

系統 CPU 高,說明內核態占用了較多的 CPU所以應該着重排查內核線程或者系統調用的性能問題

若 %iowait 的值過高,表示硬盤存在I/O瓶頸;

若 %idle 的值高但系統響應慢時,有可能是 CPU 等待分配內存,此時應加大內存容量;

若 %idle 的值持續低於1,則系統的 CPU 處理能力相對較低,表明系統中最需要解決的資源是 CPU;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM