要對進程進行監測和控 制,首先必需要了解當前進程的狀況,也就是須要查看當前進程,而ps 命令就是最基本同時也是很是強大的進程查看命令。使用該命令能夠肯定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等。總之大部分信息都是能夠經過執行該命令獲得的。緩存
ps爲咱們提供了進程的一次性的查看,它所提供的查看結果並不動態連續的;若是想對進程時間監控,應該用 top 工具。bash
PS命令使用:session
一、ps命令:進程狀態查看命令多線程
/proc/:內核中的狀態信息;app
(1)、內核參數:負載均衡
調用參數:設置其值從而調整內核運行特性的參數;/proc/sys/socket
狀態變量:其用於輸出內核中統計信息或狀態信息,僅用於查看;tcp
(2)、參數:模擬成文件系統類型;ide
(3)、進程:工具
/proc/#:
#:PID 進程號 PID TTY TIME CMD
3004 pts/0 00:00:00 bash
3783 pts/0 00:00:00 ps
ps- report a snapshot of the current processes.
二、語法及參數:
(1)、語法格式: ps [options]:選項有三種風格:
1)、UNIX options, which may be grouped and mustbe preceded by a dash.
必須加 -符號
2)、BSD options, which may be grouped and mustnot be used with a dash.
不用加 -符號
3)、GNU long options, which are preceded by twodashes.
加兩個 -符號
(2)、啓動進程的方式:
系統啓動過程當中自動啓動:與終端無關的進程;守護進程
用戶經過終端啓動:與終端相關的進程;前臺進程
(3)、選項:
a:全部與終端相關的進程;
x:全部與終端無關的進程;
u:以用戶爲中心組織進程狀態信息顯示;
經常使用組合之一:aux
VSZ:虛擬內存集;
RSS:Resident Size,常駐內存集;
STAT:
R:running 正在運行
S:interruptable sleeping 可中斷睡眠
D:uninterruptable sleeping不可中斷睡眠
T:Stopped中止 至關於Crtl+C
Z:zombie['zmb] 殭屍模式
+:前臺進程
l:多線程進程
N:低優先級進程
<:高優先級進程
s:session leader 引導進程
-e:顯示全部進程
-f:顯示完整格式的進程信息
經常使用組合之二:-ef
-F:顯示完整格式的進程信息;
C: cpu utilization CPU利用率
PSR:運行於哪顆CPU之上
-H:以層級結構顯示進程的相關信息;
o field1, field2,...:自定義要顯示的字段列表,以逗號分隔;注:o必須在後面,由於要加文件
經常使用的field:pid,ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio
經常使用組合之四:-eo,axo
ni:nice值;
priority:priority,優先級;
rtprio:realtime priority,實時優先級;
進程管理類命令TOP/HTOP/dstat使用:
1、top命令:
-display Linux processes
(1)、排序:
P:以佔據CPU百分比排序;默認下就是
M:以佔據內存百分比排序;
T:累積佔用CPU時間排序;
(2)、首部信息:
uptime信息:l命令 如今時間,開機時間幾個用戶 負載均衡(後三組數)
tasks及cpu信息:t命令:分別是us用戶佔用百分比,sy內核空間佔用百分比,ni改變過的優先,id空閒CPU百分比,
wa IO等待佔用CPU的百分比,hi硬中斷佔用百分比,si軟中斷,st偷時間(浪費的CPU,此值過大,說明CPU消耗太高,負載跟不上了),
內存信息:m命令 total 物理內存總量 ,free 空閒內存,used使用內存,buff/cache緩衝區和調整緩存
swap項與上同
退出命令:q
修改刷新時間間隔:s 默認是3秒
終止指定的進程:k
(3)、選項:
-d#:指定刷新時間間隔,默認爲3秒;
-b:以批次方式顯示;
-n#:顯示多少批次;
uptime命令:顯示系統時間、運行時長及平均負載;
過去1分鐘、5分鐘和15分鐘的平均負載;
等待運行的進程隊列的長度;
(2)、htop命令:
1)、選項:
-d#:指定延遲時間間隔;
htop -d 3
-u UserName:僅顯示指定用戶的進程; htop -u root
-sCOLUME:以指定字段進行排序;
2)、子命令:
l:顯示選定的進程打開的文件列表;
s:跟蹤選定的進程的系統調用; 選定一個進程按s查看
t:以層級關係顯示各進程狀態;
a:將選定的進程綁定至某指定的CPU核心;
暈,虛擬機只設了一個CPU,沒作實驗,也是在htop界面,點一個進程,按a
3、dstat命令:
-versatile tool for generating system resource statistics
dstat [-afv] [options..] [delay [count]]
經常使用選項:
-c,--cpu:顯示cpu相關信息;
-C#,#,...,total
-d,--disk:顯示磁盤的相關信息
-Dsda,sdb,...,tobal
-g:顯示page相關的速率數據;(內存頁框)
-m:Memory的相關統計數據
-n:Interface的相關統計數據;
-p:顯示process的相關統計數據;
-r:顯示io請求的相關的統計數據;
-s:顯示swapped的相關統計數據;
--tcp
--udp
--raw
--socket
--ipc
--top-cpu:顯示最佔用CPU的進程;
--top-io:最佔用io的進程;
--top-mem:最佔用內存的進程;
--top-lantency:延遲最大的進程;