引言
線程就是進程的子單位,一個進程可以生成多個線程。所有程序的請求都由一個進程init代理,任何程序需要發起進程都有init代理向內核發起申請,包括init本身。init在不同版本的系統上表現形式都不太一樣,在CentOS 5:SysV init;CentOS 6:upstart;CentOS 7:systemd。啓動進程的方式分爲樑總:1,系統啓動過程中自動啓動,與終端無關的進程;2,用戶通過終端啓動,,與終端相關的進程。linux進程在內核中的運行狀態,參數被模擬成文件存放在/proc/目錄下面,但是對於正常人來說這個目錄下的文件是很難識別的,於是就有了各種程序,幫助人們來查看這些文件。
ps命令顯示命令執行這一刻進程狀態,用法:
ps [OPTIONS]:
選項有三種風格:
1, UNIX風格,這類選項參數前面是 - ;
2, BSD風格,這類選項參數前面沒有 - ;
3, GUN風格,這類選項參數前面是 -- ;
BSD風格:
a:顯示所有與終端相關的進程;
x:顯示所有與終端無關的進程;
u:以用戶中心組織進程狀態信息顯示;
UNIX風格:
-e:顯示所有進程;
-f:顯示完整格式的進程信息;
-F:顯示更完整格式的進程信息;
-H:以層級結構顯示進程的相關信息;
ofield1, field2,...:自定義要顯示的字段列表,以逗號分隔;
file常用選項:
ni:nice值;
pri:priority,優先級;
rtprio:real time priority,實時優先級;
常組合使用:-eFH,-ef,aux,-eo,axo。
top命令,動態顯示linux進程信息,可選擇排序方式:
top [OPTIONS]
top命名可用選項
-d #:指定刷新時間間隔,默認爲3秒;
-b:以批次方式顯示;
-n #:以批次方式顯示,顯示多少批次;
top命令不帶任何參數顯示如下:
用top命令顯示出來的第一行信息和使用uptime顯示信息一樣。
top命令顯示進程任務信息時,可以鍵入字母來操作或選擇排序方式:
P:以佔據CPU百分比排序;
M:以佔據內存百分比排序;
T:累積佔用CPU時間排序;
q:退出;
s:修改刷新時間間隔;
k:終止指定的進程;
htop命令,從名字上來看就知道是top命令的升級版,但htop命令系統並不自帶,需要自己從社區中下載,並安裝。
htop [OPTIONS]
htop命令選項:
-d #:指定延遲時間間隔;
-u UserName:僅顯示指定用戶的進程;
-s COLUME:以指定字段進行排序;
htop顯示進程時也可以鍵入字母來進行各種操作,在F1選項中有說明
l:顯示選定的進程打開的文件列表;
s:跟蹤選定的進程的系統調用;
t:以層級關係顯示各進程狀態;
a:將選定的進程綁定至某指定的CPU核心;
F2鍵可以對htop界面進行個性化佈置。
總之htop是一個比top強大的多的多的命令,並且能夠支持鼠標操作,所以雖然htop命令系統並不自帶,但卻不得不說htop真的很好用。
dstat命令,多用途系統資源統計數據工具:
dstat[-afv] [options..] [delay [count]]
可以指定多久刷新一次,一共刷新多少次
常用選項:
-c, --cpu:顯示cpu相關信息;
-C #,#,...,total: 可以選擇看哪顆CPU;
-d, --disk:顯示磁盤的相關信息;
-D sda,sdb,...,tobal:可以選擇看那個磁盤;
-g:顯示page相關的速率數據;
-m:Memory的相關統計數據;
-n:Interface的相關統計數據;
-p:顯示process的相關統計數據;
-r:顯示io請求的相關的統計數據;
-s:顯示swapped的相關統計數據;
默認使用-cdngy選項,並且還支持動態顯示tcp,udp,raw,socket的使用
[--tcp [--udp] [--raw] [--socket]]
--ipc :顯示進程間通信;
--top-cpu:顯示最佔用CPU的進程;
--top-io:最佔用io的進程;
--top-mem:最佔用內存的進程;
--top-lantency:延遲最大的進程;