pstree 顯示進程樹 ({}是線程)
選項-p #顯示進程編號
pstree username #查看指定用戶的進程
centos7中可以使用選項-s來查看指定進程的父子進程
ps (默認顯示當前終端運行的進程)
支持三種選項:
1、UNIX選項
-C cmdlist 指定命令(允許同時指定多個命令)
-L 顯示線程
-e: 顯示所有進程,相當于-A
-f: 顯示完整格式程序信息
-F: 顯示更完整格式的進程信息
-H: 以進程層級格式顯示進程相關信息
-u userlist 指定有效的用戶ID或名稱(發起者)
-U userlist 指定真正的用戶ID或名稱(執行者)
-g gid或groupname 指定有效的gid或組名稱
-G gid或groupname 指定真正的gid或組名稱
-p pid 顯示指定pid的進程(支持多個)
–ppid pid 顯示屬于pid的子進程
-M 顯示SELinux信息,相當于Z
-t 指定終端號
2、BSD選項
a 選項包括所有終端中的進程
x 選項包括不鏈接終端的進程
u 選項顯示進程所有者的信息
f 選項顯示進程樹,相當于 –forest
k|–sort 屬性 對屬性排序,屬性前加- 表示倒序
o 屬性… 選項顯示定制的信息 pid、cmd、%cpu、%mem
L 顯示支持的屬性列表
常用組合-例:
ps axo pid,cmd,%cpu –sort %cpu
ps -C vim o pid,cmd,%mem
ps aux
3、GNU選項
–sort
–ppid
ps輸出屬性說明
VSZ 虛擬內存(系統分配的內存大小)
RSS 實際內存(進程實際可用的內存大小)
STAT:進程狀態
R:running
S: interruptable sleeping
D: uninterruptable sleeping
T: stopped
Z: zombie
+: 前臺進程
l: 多線程進程
L:內存分頁并帶鎖
N:低優先級進程
<: 高優先級進程
s: session leader,會話(子進程)發起者
ps示例
列出有效組名稱(或會話)所擁有的所有進程:
ps -fg mysql ps -fG 27
以父進程ID來顯示其下所有的進程,如顯示父進程為1154的 所有進程:
ps -f –ppid 1234
查看進程的PID,PPID,用戶名和命令:
ps -eo pid,ppid,user,cmd
自定義格式顯示文件系統組,ni值開始時間和進程的時間:
ps -p 1234 -o pid,ppid,fgroup,ni,lstart,etime
查找指定進程名所有的所屬PID,在編寫需要從std輸出或文 件讀取PID的腳本時這個參數很有用:
ps -C httpd,sshd -o pid=
檢查一個進程的執行時間
ps -eo comm,etime,user | grep nginx
查找占用最多內存和CPU的進程:
ps -eo pid,ppid,cmd,%mem,%cpu –sort=-%mem | head
ps -eo pid,ppid,cmd,%mem,%cpu –sort=-%cpu | head
使用watch實用程序執行重復的輸出以實現對就程進行實時的 監視,如下面的命令顯示每秒鐘的監視:
watch -n 1 ‘ps -eo pid,ppid,cmd,%mem,%cpu –sort=- %mem | head’
pidof cmd?? #查看此進程下的所有子進程
說明:此命令可以作為判斷進程是否運行正常的手段
uptime
顯示當前時間,系統已啟動的時間、當前上線人數,系統平均負載(1、5、10分鐘的平均負載,一般不會超過1)
系統平均負載: 指在特定時間間隔內運行隊列中的平均進程數
通常每個CPU內核的當前活動進程數不大于3,那么系統 的性能良好。如果每個CPU內核的任務數大于5,那么此 主機的性能有嚴重問題
如果linux主機是1個雙核CPU,當Load Average 為6的 時候說明機器已經被充分使用
top:有許多內置命令:
排序:
P:以占據的CPU百分比,%CPU
M:占據內存百分比,%MEM
T:累積占據CPU時長,TIME+
首部信息顯示:
uptime信息:l命令
tasks及cpu信息:t命令
cpu分別顯示:1 (數字)
memory信息:m命令
退出命令:q
修改刷新時間間隔:s
終止指定進程:k
保存文件:W
欄位信息簡介
us:用戶空間
sy:內核空間
ni:調整nice時間
id:空閑
wa:等待IO時間
hi:硬中斷
si:軟中斷(模式切換)
st:虛擬機偷走的時間
選項:
-d #: 指定刷新時間間隔,默認為3秒
-b: 全部顯示所有進程
-n #: 刷新多少次后退出
ltop命令
選項:
-d #: 指定延遲時間;
-u UserName: 僅顯示指定用戶的進程
-s COLUME: 以指定字段進行排序
子命令:
s: 跟蹤選定進程的系統調用
l: 顯示選定進程打開的文件列表
a:將選定的進程綁定至某指定CPU核心
t: 顯示進程樹
vmstat命令:虛擬內存信息(以內存為參照)
vmstat 1 5?? #1秒顯示1次,顯示5次
輸出說明:
procs
r:可運行(正運行或等待運行)進程的個數,和核心數有關
b:處于不可中斷睡眠態的進程個數(被阻塞的隊列的長度)
memory
swpd: 交換內存的使用總量
free:空閑物理內存總量
buffer:用于buffer的內存總量
cache:用于cache的內存總量
swap:
si:從磁盤交換進內存的數據速率(kb/s)
so:從內存交換至磁盤的數據速率(kb/s)
io:
bi:從塊設備讀入數據到系統的速率(kb/s)
bo: 保存數據至塊設備的速率
system
in: interrupts 中斷速率,包括時鐘
cs: context switch 進程切換速率
選項
-s: 顯示內存的統計數據
iostat? #統計CPU和設備IO信息
iostat 1 10? #1秒顯示一次,10次結束
glances 遠程監控主機狀態
服務器模式:
glances -s -B IPADDR
IPADDR: 指明監聽的本機哪個地址
不加-B 監聽在所有地址
客戶端模式:
glances -c IPADDR
IPADDR:要連入的服務器端地址
iotop命令是一個用來監視磁盤I/O使用狀況的top類工具
iotop輸出說明
第一行:Read和Write速率總計
第二行:實際的Read和Write速率
第三行:參數如下:
線程ID(按p切換為進程ID)
優先級
用戶
磁盤讀速率
磁盤寫速率
swap交換百分比
IO等待所占的百分比
線程/進程命令
iotop常用參數
-o, –only只顯示正在產生I/O的進程或線程。除了傳參,可以在運行過程中按o生效。
-b, –batch非交互模式,一般用來記錄日志。
-n NUM, –iter=NUM設置監測的次數,默認無限。在非交互模式下很有用。
-d SEC, –delay=SEC設置每次監測的間隔,默認1秒,接受非整形數據例如1.1。
-p PID, –pid=PID指定監測的進程/線程。
-u USER, –user=USER指定監測某個用戶產生的I/O
-P, –processes僅顯示進程,默認iotop顯示所有線程。
-a, –accumulated顯示累積的I/O,而不是帶寬。
-k, –kilobytes使用kB單位,而不是對人友好的單位。在非交互模式下,腳本編程有用
-t, –time 加上時間戳,非交互非模式
-q, –quiet 禁止頭幾行,非交互模式,有三種指定方式
-q 只在第一次監測時顯示列名
-qq 永遠不顯示列名
-qqq 永遠不顯示I/O匯總
交互按鍵
left和right方向鍵:改變排序
r:反向排序
o:切換至選項–only
p:切換至–processes選項
a:切換至–accumulated選項
q:退出
i:改變線程的優先級
kill命令(
顯示當前系統可用信號
kill –l或trap -l
常用信號
1) SIGHUP: 無須關閉進程而讓其重讀配置文件
2) SIGINT: 中止正在運行的進程;相當于Ctrl+c
3) SIGQUIT:相當于ctrl+\
9) SIGKILL: 強制殺死正在運行的進程
15) SIGTERM:終止正在運行的進程
18) SIGCONT:繼續運行
19) SIGSTOP:后臺休眠
0? 檢查進程是否正常工作
指定信號的方法:
(1) 信號的數字標識:1, 2, 9
(2) 信號完整名稱:SIGHUP
(3) 信號的簡寫名稱:HUP
例:
按pid
kill -SIGNAL pid
按名字
Killall -SIGNAL cmd
按模式
pkill
-SIGNAL
-u uid: effective user,生效者
-U uid: real user,真正發起運行命令者
-t terminal: 與指定終端相關的進程
-l: 顯示進程名(pgrep可用)
-a: 顯示完整格式的進程名(pgrep可用)
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90203