Linux進程查看與管理命令總結
-
內核的功能:
-
進程管理
-
文件系統
-
網絡功能
-
內存管理
-
驅動程序
-
安全功能
-
Process:運行中程序的一個副本。(存在生命周期)
-
Linux內核存儲進程信息的固定格式:task struct
-
多個任務的task struct組件的鏈表:task list
-
進程創建:
-
init
-
父子關系
-
進程:都有其父進程創建
-
fork(),clone()
-
進程優先級:
-
0-139:
-
1-99:實時優先級:數字越大,優先級越高
-
100-139:靜態優先級:數字越小,優先級越高
-
Nice值:-20,19
-
Big O標準
-
O(1),O(logn),O(n),0(n^2),O(2^n)
-
進程內存
-
Page Frame:頁框,用存儲頁面數據
-
存儲Page
-
MMU:Memory Management Unit
-
IPC:Inter Process Communicarion(進程通信機制)
-
同一主機上:
-
signal
-
shm:shared memory
-
semerphor
-
不同主機上:
-
rpc:remote procecure call(遠程過程調用)
-
socket:
-
Linux內核:搶占式多任務
-
進程類型:
-
守護進程:在系統引導過程中啟動的進程,與終端無關的進程。
-
前臺進程:跟終端相關,通過終端啟動的進程
-
注:也可將在前臺啟動的進程送往后臺,以守護模式運行。
-
進程狀態
-
運行態:running
-
就緒態:ready
-
睡眠態:
-
可中斷:interruptable
-
不可中斷:uninterruptable
-
停止態:暫停于內存中,但不會被調度,除非手動啟動之:stopped
-
僵死態:zombie
-
進程的分類:
-
cpu-Bound
-
IO-Bound
-
Linux系統上的進程查看及管理工具:pstree,ps,pidof,pgrep,top ,htop,glances,pmap,vnstat,dstat,kill,pkill,job,bg,fg,nohup,nice,renice,killall,…
-
pstree命令:pstree-display a tree of processes
-
ps命令:
-
/proc/:內核中的狀態信息;
-
內核參數:
-
可設置其值從而調整內核運行特性的參數;/proc/sys/
-
狀態變量:其用于輸出內核中統計信息或狀態信息,僅用于查看;
-
進程:
-
/proc/#:(#:PID)
-
ps-report a snapshot of the current processes
-
ps[options]
-
選項有三種風格:
-
UNIX options,which may be grouped and must be preceded by a dash。
-
BSD options,which may be grouped and must not be used with a dash。
-
GNU long options,which are preceded by two dashes。
-
啟動進程的方式:
-
系統啟動過程中自動啟動:與終端無關的進程;
-
用戶通過終端啟動:與終端相關的進程;
-
選項:
-
a:所有與終端相關的進程;
-
x:所有與終端無關的進程;
-
u:以用戶為中心組織進程狀態信息顯示;
-
常用組合之一:aux
-
VSZ:虛擬內存集;
-
RSS:Resident Size,常駐內存集;
-
STAT:
-
R:running
-
S:interruptable sleeping
-
D:uninterruptable sleeping
-
T:Stopped
-
Z:zombie
-
+:前臺進程
-
I:多線程進程
-
N:低優先進程
-
<:高級優先進程
-
s:session leader
-
常用組合二:-ef
-
-F:顯示完整格式的進程信息;
-
C:cpu utilization
-
PSR:運行于那顆CPU之上
-
-H:以層級結構顯示進程的相關信息;
-
常用組合三:-eFH
-
常用組合四:
-
o field1,field2,…:自定義要顯示的字段列表,以逗號分隔;
-
常用的field:pid,ni,pri,psr,pcpu,stat,comm,tty,ppid,rtprio
-
ni:nice值
-
pri:priority,優先級;
-
rtprio:real time priority;實時優先級;
-
pgrep,pkill命令:-look up or signal processes based on name and other attributes
-
pgrep[options]pattern
-
-u uid:effective user
-
-U uid:read user
-
-t TERMINAL:與指定的終端相關的進程;
-
-l顯示進程名;
-
-a:顯示完整格式的進程名;
-
-P pid:顯示此進程的子進程;
-
pidof命令:
-
根據進程名,取其pid;
-
top命令;
-
-display Linux processes
-
排序:
-
P:以占據cpu百分比排序;
-
M:以占據內存百分比排序;
-
T:以占用cup時間排序;
-
首部信息:
-
uptime信息:I命令
-
tasks及cpu信息:t命令
-
內存信息:m命令
-
退出命令:q
-
修改刷新時間命令:s
-
終止指定的進程:k
-
選項:
-
-d #:指定刷新時間間隔,默認為3秒;
-
-b:以批次方式顯示;
-
-n #:顯示多少批次;
-
uptime命令:顯示系統時間、運行時長及平均負載;
-
過去1分鐘、5分鐘和15分鐘的平均負載;
-
等待運行的進程隊列長度
-
htop命令:
-
選項:
-
-d #:指定延遲時間間隔;
-
-u UserName:僅顯示指定用戶的進程;
-
-s COLUME:以指定字段進行排序;
-
子命令:
-
l:顯示選定的進程打開的文件列表;
-
s:跟蹤選定的進程的系統調用;
-
t:以層級關系顯示各進程的狀態;
-
a:將選定的進程綁定至某指定的CPU核心;
-
vmstat命令:
-
-Report virtual memory statistics
-
vmstat [option][delay[count]]
-
procs:
-
r:等待運行的程序的個數;CPU上等待運行的任務的隊列長度;
-
b:處于不可中斷睡眠態的進程個數;被阻塞的任務隊列的長度;
-
memory:
-
swpd:交換內存使用總量;
-
free:空閑的物理內存總量;
-
buffer:用于buffer的內存總量;
-
cache:用于cache的內存總量
-
swap:
-
si:數據進入swap中的數據速率(kb/s)
-
so:數據離開swap的速錄(kb/s)
-
io:
-
bi:從塊設備讀入數據到系統的速度(kb/s)
-
bo:保存數據至塊設備的速率(kb/s)
-
system:
-
in:interrupts,終端速率;
-
cs:context switch,上下文切換的速率;
-
cpu
-
us:user space
-
sy:system
-
id:idle
-
wa:wait
-
st:stolen
-
選項:
-
-s:顯示內存統計數據;
-
pmap命令:-report memory map of a process
-
pmap [options]pid[…]
-
-x:顯示詳細格式的信息;
-
另一種查看方式:cat /proc/PIDmaps
-
glances命令: -A cross-platform curses-based monitoring tool
-
內建命令
-
常用選項:
-
-b:以Byte為單位顯示網上數據速率;
-
-d:關閉磁盤I/O模塊;
-
-m:關閉mount模塊;
-
-n:關閉network模塊;
-
-t #:刷新時間間隔;
-
-1:每個cpu的相關數據單獨顯示
-
-o{HTML|CSV}:輸出格式;
-
-f /PATH/TO/SOMEDIR:設定輸出文件的位置;
-
C/S模式下運行glances命令;
-
服務模式:
-
glances -s -B IPADDR
-
IPADDR:本機的地址,用于監聽;
-
客戶端模式
-
glances -c IPADDR
-
IPADDR:是遠程服務器的地址
-
dstat命令:-vversatile tool for generating system resource statistics
-
dstat[-afv][options…][delay[count]]
-
常用選項:
-
-c: 顯示cpu相關信息
-
-C #,#,…,total
-
-d: 顯示disk相關信息
-
-D total,sda,sdb,…
-
-g:顯示page相關統計數據
-
-m: 顯示memory相關統計數據
-
-n: 顯示network相關統計數據
-
-p: 顯示process相關統計數據
-
-r: 顯示io請求相關的統計數據
-
-s: 顯示swapped相關的統計數據
-
–tcp
-
–udp
-
–unix
-
–raw
-
–socket
-
–ipc
-
–top-cpu:顯示最占用CPU的進程
-
–top-io: 顯示最占用io的進程
-
–top-mem: 顯示最占用內存的進程
-
–top-latency: 顯示延遲最大的進程
-
kill命令: -terminate a process向進程發送控制信號,以實現對進程管理
-
顯示當前系統可用信號:
-
kill -l
-
每個信號的表示方法有三種;
-
1)信號的數字標識;
-
2)信號的完整名稱;
-
3)信號的簡寫名稱;
-
向發信號:
-
kill[-s signal|-SIGNAL]PID…
-
常用信號:
-
1) SIGHUP: 無須關閉進程而讓其重讀配置文件
-
2) SIGINT: 中止正在運行的進程;相當于Ctrl+c
-
9) SIGKILL: 殺死正在運行的進程
-
15) SIGTERM:終止正在運行的進程
-
18) SIGCONT:
-
19) SIGSTOP: 指定信號的方法:
-
(1) 信號的數字標識;1, 2, 9
-
(2) 信號完整名稱;SIGHUP
-
(3) 信號的簡寫名稱;HUP
-
killall命令: -kill processes by name
-
killall [-SIGNAL] program
原創文章,作者:502795641,如若轉載,請注明出處:http://www.www58058.com/44497
盡量能將筆記轉換為優秀的博客來,而不是粘貼筆記,相信自己,加油?。?!