Linux 進程管理之四大名捕

本文來自網絡,著作權歸原創作者所有,不做任何商業用途。

一、四大名捕

四大名捕,最初出現於溫瑞安創作的武俠小說,是朝廷中正義力量諸葛小花的四大徒弟,四人各懷絕技,分別是輕功暗器高手“無情”、內功卓越的高手“鐵手”、腿功驚人的“追命”和劍法一流的“冷血”。

本文四大名捕由 linux 命令所出演:

無情:ps 出演 鐵手:dstat 出演 追命:top 出演 冷血:htop 出演

二、進程相關基礎知識

介紹四大名捕之前先介紹一下進程相關的基礎知識,話不多說,看圖。

(查看大圖)

三、輕功暗器高手“無情” [PS]

ps:用於顯示當前進程的狀態(非動態) ps [options]:

選項有三種風格: 1、UNIX風格,必須在選項前面加“-” 2、BSD風格,選項前不能加“-” 3、GNU風格,選項前爲兩個“-”

常用組合之一:aux

  • a:所有與終端相關的進程
  • x:所有與終端無關的進程
  • u:以用戶爲中心組織進程狀態信息顯示

CPU%:cpu時間佔用比率

MEM%:內存佔用百分比

VSZ:virtual size虛擬內存集;

RSS:Resident Size,常駐內存集;

STAT:

  • R:running 運行
  • S:interruptable sleeping 可中斷睡眠
  • D:uninterruptable sleeping 不可中斷睡眠
  • T:Stopped 停止
  • Z:zombie 僵死態
  • +:前臺進程
  • l:多線程進程
  • N:低優先級進程
  • <:高優先級進程
  • s:session leader 進程領導者

常用組合之二:-ef

  • -e:顯示所有進程
  • -f:顯示完整格式的進程信息

常用組合之三:-eFH

-F:顯示完整格式的進程信息;

  • C: cpu utilization cpu佔用百分比
  • PSR:運行於哪顆CPU之上

-H:以層級結構顯示進程的相關信息;

常用組合之四:-eo, axo

o field1, field2,…:自定義要顯示的字段列表,以逗號分隔

常用的field:pid, ni, priority, psr, pcpu, stat, comm, tty, ppid, rtprio

  • pid:進程的pid號
  • ni:nice值
  • priority:優先級
  • psr:運行在那顆cpu
  • pcpu:cpu利用率
  • ppid:父進程的id號
  • rtprio:實時優先級

四、內功卓越的高手“鐵手”[dstat]

dstat:系統資源統計命令(動態) dstat [-afv] [options..] [delay [count]]

常用選項:

  • -c, –cpu:顯示cpu相關信息;
  • -C #,#,…,total:顯示第一個cpu,第二個cpu或者總共的
  • -d, –disk:顯示磁盤的相關信息
  • -D sda,sdb,…,tobal:顯示指定硬盤設備,總空間
  • -g:顯示page相關的速率數據;
  • -m:Memory的相關統計數據
  • -n:Interface的相關統計數據;
  • -p:顯示process的相關統計數據;
  • -r:顯示io請求的相關的統計數據;
  • -s:顯示swapped的相關統計數據;

–tcp:顯示tcp套接字

–udp:顯示udp連接

–raw:顯示裸套接字

–socket:套接字

–ipc:進程間通信信息

–top-cpu:顯示最佔用CPU的進程;

–top-io:最佔用io的進程;

–top-mem:最佔用內存的進程;

五、腿功驚人的“追命”[top]

top:列出inux進程 top爲動態顯示進程

top命令個參數具體含義:

top – 14:58:34 up 5:28, 1 user, load average: 0.01, 0.02, 0.05

  • 14:58:34:當前時間
  • up 5:28:運行時長
  • 1 user:登錄當前系統上的用戶數
  • load average: 0.01, 0.02, 0.05:平均負載(等待運行的隊列長度的負載)

Tasks: 353 total, 2 running, 351 sleeping, 0 stopped, 0 zombie

  • Tasks:任務
  • 353 total:一共運行多少進程
  • 2 running:幾個處於運行
  • 351 sleeping:多少個睡眠
  • 0 stopped:多少個停止
  • 0 zombie:多少個僵死

%Cpu(s): 0.0 us, 0.7 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

  • %Cpu:cpu佔用百分比
  • 0.0 us:用戶空間佔用的百分比
  • 0.7 sy:內核空間佔用時間的百分比
  • 0.0 ni:對nice調整佔用的內存百分比
  • 99.3 id:空閒百分比
  • 0.0 wa(wait):等待IO完成所消耗的百分比
  • 0.0 hi:處理硬件中斷所佔用的百分比
  • 0.0 si:處理軟件中斷所佔用的百分比
  • 0.0 st:被偷走的百分比(虛擬化程序)

KiB Mem : 1001332 total, 681052 free, 139844 used, 180436 buff/cache

  • KiB Mem:內存空間佔用,以KB爲單位:
  • 1001332 total:總內存空間
  • 681052 free:剩餘內存空間
  • 139844 used:已用內存空間
  • 180436 buff/cache:用於緩存和緩衝的內存空間

KiB Swap: 2098172 total, 2098172 free, 0 used. 698100 avail Mem

  • KiB Swap:swap空間佔用,以KB爲單位
  • 2098172 total:總空間
  • 2098172 free:剩餘空間
  • 0 used:已用空間
  • 698100 avail Mem :有效swap大小

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

3077 root 20 0 146276 2256 1420 R 1.7 0.2 0:02.91 top

  • PID:用戶pid
  • USER:用戶名稱
  • PR:優先級
  • NI:nice值
  • VIRT:virtual size虛擬內存集
  • RES:常駐內存集
  • SHR:共享內存空間
  • S:當前狀態
  • %CPU:佔據CPU百分比
  • %MEM:佔據MEM百分比
  • TIME+:運行時長
  • COMMAND:命令

top內排序:

  • P:以佔據CPU百分比排序
  • M:以佔據內存百分比排序
  • T:累積佔用CPU時間排序

首部信息:

uptime信息:l命令

# 第一行沒有顯示

tasks及cpu信息:t命令

# 可以禁用顯示硬盤及cpu相關消息

內存信息:m命令

# 可以將內存使用率用|||顯示 或者白空格顯示

退出命令:q

修改刷新時間間隔:s

終止指定的進程:k

選項:

  • -d #:指定刷新時間間隔,默認爲3秒;
  • -b:以批次方式顯示;
  • -n #:顯示多少批次;

六、劍法一流“冷血”[htop]

htop:交互式進程查看器 htop [-dus]

# htop 是一個非常強大的工具,下面從F1到F10可以看到具體的參數信息。

# F1 :幫助信息

選項:

  • -d #:指定延遲時間間隔
  • -u UserName:僅顯示指定用戶的進程
  • -s COLUME:以指定字段進行排序

常用子命令:

  • l:顯示選定的進程打開的文件列表
  • s:跟蹤選定的進程的系統調用
  • t:以層級關係顯示各進程狀態
  • a:將選定的進程綁定至某指定的CPU核心

# 此處可以添加指定項到顯示屏幕上面,顯示方式可以是[Bar] [Text] [Graph] [LED]

進程管理相關命令就介紹到這了,如果有不同意見可以慷慨提出!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章