国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux中top命令輸出詳解

2024-08-28 00:03:36
字體:
來源:轉載
供稿:網友

前言

Linux下的top命令我相信大家都用過,自從我接觸Linux以來就一直用top查看進程的CPU和MEM排行榜。但是top命令的其他輸出結果我都沒有了解,這些指標都代表什么呢,什么情況下需要關注呢?以及top命令輸出結果的來源數據是什么呢,又是怎么一個計算原理呢?

演示環境

# uname -aLinux VM_1_11_centos 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

top命令

top命令是Linux下常用的性能分析工具,能夠實時(默認是3s刷新一次)的顯示系統的資源使用情況,以及各種進程的資源使用情況,類似于Windows的任務管理器。

top - 11:00:54 up 54 days, 23:35, 6 users, load average: 16.32, 18.75, 21.04Tasks: 209 total,  3 running, 205 sleeping,  0 stopped,  1 zombie%Cpu(s): 29.7 us, 18.9 sy, 0.0 ni, 49.3 id, 1.7 wa, 0.0 hi, 0.4 si, 0.0 stKiB Mem : 32781216 total, 1506220 free, 6525496 used, 24749500 buff/cacheKiB Swap:    0 total,    0 free,    0 used. 25607592 avail Mem  PID USER   PR NI  VIRT  RES  SHR S %CPU %MEM   TIME+ COMMAND                                                                                 root   20  0  15.6g 461676  4704 R 198.0 1.4 11:15.26 python                                                                                  root   20  0 9725596 240028  4672 R 113.0 0.7  7:48.49 python                                                                                  root   20  0 6878028 143196  4720 S 82.4 0.4  1:35.03 python

第一行數據相當于uptime命令輸出。11:00:54是當前時間,up 54 days,23:55 是系統已經運行的時間,6 users表示當前有6個用戶在登錄,load average:16.32,18.75,21.04分別表示系統一分鐘平均負載,5分鐘平均負載,15分鐘平均負載。

平均負載

平均負載表示的平均活躍進程數,包括正在running的進程數,準備running(就緒態)的進程數,和處于不可中斷睡眠狀態的進程數。如果平均負載數剛好等于CPU核數,那證明每個核都能得到很好的利用,如果平均負載數大于核數證明系統處于過載的狀態,通常認為是超過核數的70%認為是嚴重過載,需要關注。還需結合1分鐘平均負載,5分鐘平均負載,15分鐘平均負載看負載的趨勢,如果1分鐘負載比較高,5分鐘和15分鐘的平均負載都比較低,則說明是瞬間升高,需要觀察。如果三個值都很高則需要關注下是否某個進程在瘋狂消耗CPU或者有頻繁的IO操作,也有可能是系統運行的進程太多,頻繁的進程切換導致。比如說上面的演示環境是一臺8核的centos機器,證明系統是長期處于過載狀態在運行。

Tasks: 214 total,   4 running, 209 sleeping,   0 stopped,   1 zombie

第二行的Tasks信息展示的系統運行的整體進程數量和狀態信息。214 total 表示系統現在一共有214個用戶進程,4 running 表示4個進程正在處于running狀態,209 sleeping表示209個進程正處于sleeping狀態,0 stopped 表示 0 個進程正處于stopped狀態,1 zombie表示 有1個僵尸進程。

僵尸進程

子進程結束時父進程沒有調用wait()/waitpid()等待子進程結束,那么就會產生僵尸進程。原因是子進程結束時并沒有真正退出,而是留下一個僵尸進程的數據結構在系統進程表中,等待父進程清理,如果父進程已經退出則會由init進程接替父進程進行處理(收尸)。由此可見,如果父進程不作為并且又不退出,就會有大量的僵尸進程,每個僵尸進程會占用進程表的一個位置(slot),如果僵尸進程太多會導致系統無法創建新的進程,因為進程表的容量是有限的。所以當zombie這個指標太大時需要引起我們的注意。下面的進程詳細信息中的S列就代表進程的運行狀態,Z表示該進程是僵尸進程。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台北县| 来凤县| 高碑店市| 瓦房店市| 桐梓县| 大邑县| 淳化县| 星子县| 赤城县| 东兰县| 兴仁县| 马边| 社会| 格尔木市| 沂水县| 湄潭县| 安徽省| 深州市| 海晏县| 晴隆县| 望都县| 通海县| 荃湾区| 泸溪县| 鄂托克旗| 吉林市| 县级市| 乌拉特中旗| 庆云县| 铜山县| 宁德市| 乐山市| 阿拉善盟| 喀喇| 泾源县| 桑植县| 锡林郭勒盟| 余庆县| 安平县| 石楼县| 旌德县|