一、Linux進程相關知識點:
1)進程的概念:進程是運行中的程序。
2)進程的分類:
1、按照進程狀態:
運行態:running
睡眠態:sleeping
可中斷:Interruptable
不可中斷:Uninterruptable
停止態:stopped
僵死態:zombie
2、按照進程的處理方式:
(1)批處理進程
(2)交互式進程
(3)實時進程
3、按照操作的密集程度:
CPU密集型:cpu-bound 進程在運行時,佔用CPU時間較多的進程。
IO密集型:io-bound 進程在運行時,佔用I/O時間較多的進程。
注:通常情況下,I/O密集型的優先級要高於CPU密集型。
3)按照進程優先級:
(1)實時優先級:0-99,數字越大優先級越高
(2)靜態優先級:100-139,數字越小優先級越高
------注:可以使用nice來調整,nice值的取值範圍是[-20,19],分別對應100到139;啓動進程時其默認nice值爲0; 其默認優先級爲120.
(3)動態優先級:內核維護,由動態調整;
二 、進程管理工具:
1)進程管理工具 htop:
htop命令是top命令的升級版,無論是在功能上還是在界面顯示上,都比top命令更勝一籌。
輸入命令#htop進入使用界面:
上面左上角顯示CPU、內存、交換區的使用情況,右邊顯示任務、負載、開機時間,下面就是進程實時狀況。
下面是 F1~F10 的功能和對應的字母快捷鍵
F1 | 查看htop的使用說明 |
F2 | htop的設定 |
F3 | 搜索進程 |
F4 | 增量進程過濾器 |
F5 | 顯示樹形結構 |
F6 | 選擇排序方式 |
F7 | 可減少nice值,提高對應進程的優先級 |
F8 | 可增加nice值,降低對應進程的優先級 |
F9 | 可對進程傳遞信號 |
F10 | 結束htop |
支持鼠標功能,鼠標點擊Help或者按F1 顯示自帶幫助
鼠標點擊Setup或者按下F2 之後進入htop 設定的頁面
選項:
-d #: 刷新時間間隔
-u USERNAME: 僅顯示指定用戶的進程
-s COLUMN: 以指定的字段進行排序
交互式命令:
u: 僅顯示指定用戶的進程
s: 跟蹤選定進程發起的系統調用
l: 跟蹤選定進程打開的文件
t: 顯示進程樹
a: 設定cpu親緣性(將選定的進程綁定在某CPU上)
2)進程管理工具 glances:
一款強大的系統監控工具:能實時監控像cpu,meomory,load,swap,Network,mount,disk等信息。
輸入命令#glances進入操作界面
glances 工作界面的說明 :
在圖上部是 CPU 、Load(負載)、Mem(內存使用)、 Swap(交換分區)的使用情況
glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]
選項:
-b: 以Byte爲單位顯示網卡數據速率;
-d: 關閉磁盤I/O模塊
-f /path/to/somewhere: 設置輸出文件的位置及其格式;
-o {HTML|CSV}
-m: 禁用mount模塊
-n: 禁用網絡模塊
-t #: 指定刷新時間間隔
-1:每個CPU的數據單獨顯示
交互式命令:有許多交互式命令來定義glances的顯示信息,以及排序方式等;
h: 顯示幫助
C/S模式下運行glances命令:
服務模式:
glances -s -B IPADDR
IPADDR:自己監聽的本機地址
客戶端模式:
glances -c IPADDR
IPADDR: 遠程服務器監聽的地址
3)進程管理工具 dstat: 支持插件
輸入#dstat進入操作界面
dstat [-afv] [options..] [delay [count]]
選項:
-c : 顯示CPU統計數據,如有多個CPU彙總統計
-d: 顯示disk統計數據,如有多塊磁盤則彙總統計
-g,--page: 顯示page信息
-i 顯示中斷的統計數據
-l 顯示系統的負載信息
-m 顯示內存的統計信息
-p 顯示進程隊列
-r, --io 統計I/O請求,包括讀寫請求
-s, --swap 顯示swap情況
-t, --time 顯示統計時時間,對分析歷史數據非常有用
-y, --sys 統計系統信息,包括中斷、上下文切換
--aio: 顯示異步io統計數據
--ipc: ipc相關的信息
--raw: raw socket
--tcp: tcp socket
--udp: udp socket
--socket: raw, tcp, udp
--unix: unix sock
--top-cpu: 顯示最佔用CPU的進程
--top-bio: 顯示最佔用block IO的進程
--top-mem: 顯示最耗費內存的進程
--top-io: 最佔用IO的進程