busybox的top顯示和linux 桌面版本的top顯示有些細微的區別


busybox的top顯示和linux 桌面版本的top顯示有些細微的區別
summary區域--概要區域

image

Mem: 23018544K used, 1485568K free, 1307440K shrd, 676K buff, 7422896K cached

這一行顯示了memory的總體使用情況,這個信息是通過讀取/proc/meminfo獲取的。

used(23018544K)是當前已用的內存

free(1485568K)是當前可用的內存

shrd(1307440K)是tmpfs使用的內存數量,一般用於shmem

buff(676K)是直接訪問塊設備時的緩沖區的總大小。

cached(7422896K): 從disk讀文件的時候用的內存緩存。

CPU0: 9% usr 1% sys 0% nic 86% idle 1% io 0% irq 0% sirq

CPU1: 5% usr 3% sys 0% nic 91% idle 0% io 0% irq 0% sirq

CPU2: 9% usr 2% sys 0% nic 87% idle 0% io 0% irq 0% sirq

CPU3: 11% usr 1% sys 0% nic 87% idle 0% io 0% irq 0% sirq

CPU4: 13% usr 1% sys 0% nic 85% idle 0% io 0% irq 0% sirq

CPU5: 23% usr 1% sys 0% nic 75% idle 0% io 0% irq 0% sirq

CPU6: 36% usr 0% sys 0% nic 62% idle 0% io 0% irq 0% sirq

CPU7: 23% usr 2% sys 0% nic 72% idle 0% io 0% irq 1% sirq

CPU8: 5% usr 2% sys 0% nic 92% idle 0% io 0% irq 0% sirq

CPU9: 6% usr 4% sys 0% nic 88% idle 0% io 0% irq 0% sirq

CPU10: 5% usr 3% sys 0% nic 90% idle 1% io 0% irq 0% sirq

CPU11: 3% usr 1% sys 0% nic 94% idle 0% io 0% irq 0% sirq

CPU12: 4% usr 1% sys 0% nic 93% idle 0% io 0% irq 0% sirq

CPU13: 3% usr 1% sys 0% nic 94% idle 0% io 0% irq 0% sirq

CPU14: 4% usr 1% sys 0% nic 93% idle 0% io 0% irq 0% sirq

CPU15: 5% usr 1% sys 0% nic 92% idle 0% io 0% irq 0% sirq

這一行則顯示了CPU的負載情況,多核CPU要查看每個核的負載情況,可以按1,再按1回到總的CPU負載情況。

usr 指的是用戶進程空間未改變過優先級的進程占用CPU百分比

sys 指內核空間占用CPU百分比

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

idle 指空閑時間百分比

io 也就是iowait,指的是空閑&等待I/O的時間百分比

irq 指的是硬中斷占用的CPU時間百分比

sirq 指的是軟中斷占用的CPU時間百分比

Load average: 0.66 0.55 2.60 2/2517 127

這一行顯示了整體系統負載,整體負載是CPU負載,Disk負載,網絡負載和其它外設負載的綜合反饋。

前面三個數分別對應過去1分鍾,5分鍾,15分鍾的負載。在linux中,Load是處於可執行態(TASK_RUNNING)和不可中斷睡眠態(TASK_UNINTERRUPTIBLE)的進程數。

第三個值(1/50)分別表示當前運行進程(1,包括LWP)和總的進程(50,同樣包括LWP)。

第四個值顯示的是最后一個線程ID
task區域顯示了每個進程的負載情況
    8     1 root     S   12711m  50%  11   0% java -javaagent:/home/app/agent/skywalking-agent.jar -Djava.security.egd=file:/dev/./urandom -server -Dfile.encoding=utf-8 -cp .:*:lib/* 
    1     0 root     S     1596   0%   1   0% {start.sh} /bin/sh /home/app/start.sh --spring.profiles.active=dev --server.servlet.context-path=/i6000-ics-service --server-web.host=http://172.
其中:

PID是進程ID

PPID是父進程ID

USER是進程的用戶

STAT是進程的狀態

VSZ是映射到進程地址空間中的內存量,這個虛擬內存有可能大於實際物理內存(部分被swap out)。

%MEM 是這個進程使用的物理內存的頁數乘以100除以物理內存的總頁數。初略地看,就是值越高,進程耗費的內存越高。

CPU 多核中,這個進程最后運行所在的核

%CPU 進程使用的CPU的占比,視實現情況,多核有的是指某一單核的占比,有的是所有核CPU的占比。

COMMAND 進程運行的指令。
分析經驗
通常第一步可以觀察Load和CPU負載,如果Load高且CPU負載高,說明Load高很可能是CPU負載高引起的,反之則可能是其它負載(I/O等)。

如果CPU負載高,可以進一步分析CPU的幾個核心指標,以及各個核的情況。

如果是usr高,說明cpu確實消耗在進程里,可以檢查進程是否有死循環或者CPU密集計算,頻繁發生FullGC等
如果sys高,說明CPU消耗在系統內核,可以檢查驅動,排查是否存在I/O,內存等系統資源瓶頸。
如果sirq高,可以排查下網絡I/O瓶頸。
負載很重要的是要觀察趨勢,不管是CPU負載還是mem使用,都觀察下趨勢,是上漲還是下降,再結合系統情況作出猜測。

Load則直接可以從三個數值看出趨勢來。


免責聲明!

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



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