命令
mpstat
pidstat
pidstat主要用於監控全部或指定進程佔用系統資源的情況,如CPU,內存、設備IO、任務切換、線程等。pidstat首次運行時顯示自系統啓動開始的各項統計信息,之後運行pidstat將顯示自上次運行該命令以後的統計信息。用戶可以通過指定統計的次數和時間來獲得所需的統計信息。
選項
-C comm #只顯示那些包含字符串(可是正則表達式)comm的命令的名字
-d #顯示I/O統計信息(須內核2.6.20及以後)
PID #進程號
kB_rd/s #每秒此進程從磁盤讀取的千字節數
kB_wr/s #此進程已經或者將要寫入磁盤的每秒千字節數
kB_ccwr/s #由任務取消的寫入磁盤的千字節數
Command #命令的名字
-h #顯示所有的活動的任務
-I #在SMP環境,指出任務的CPU使用(等同於選項-u)應該被除於cpu的總數
-l #顯示進程的命令名和它的參數
-p { pid [,...] | SELF | ALL } #指定線程顯示其報告
-r #顯示分頁錯誤的內存利用率
When reporting statistics for individual tasks, the following values are displayed:
PID #進程號
minflt/s #每秒次缺頁錯誤次數(minor page faults),次缺頁錯誤次數意即虛擬內存地址映射成物理內存地址產生的page fault次數
majflt/s #每秒主缺頁錯誤次數(major page faults),當虛擬內存地址映射成物理內存地址時,相應的page在swap中,這樣的page fault爲major page fault,一般在內存使用緊張時產生
VSZ #該進程使用的虛擬內存(以kB爲單位)
RSS #該進程使用的物理內存(以kB爲單位)
%MEM #當前任務使用的有效內存的百分比
Command #任務的命令名
When reporting global statistics for tasks and all their children, the following values are displayed:
PID #PID號
minflt-nr #在指定的時間間隔內收集的進程和其子進程的次缺頁錯誤次數
majflt-nr #在指定的時間間隔內收集的進程和其子進程的主缺頁錯誤次數
Command #命令名
-s #堆棧的使用
-t #顯示與所選任務相關的線程的統計數據
-T { TASK | CHILD | ALL } #指定必須監測的內容:TASK是默認的,單個任務的報告;CHILD:指定的進程和他們的子進程的全局報告,ALL:相當於TASK和CHILD
-u #報告CPU使用
When reporting statistics for individual tasks, the following values are displayed:
PID
%usr #用戶層任務正在使用的CPU百分比(with or without nice priority ,NOT include time spent running a virtual processor)
%system #系統層正在執行的任務的CPU使用百分比
%guest #運行虛擬機的CPU佔用百分比
%CPU #所有的使用的CPU的時間百分比
CPU #處理器數量
Command #命令
When reporting global statistics for tasks and all their children, the following values are displayed:
PID #PID號
usr-ms #在指定時間內收集的在用戶層執行的進程和它的子進程佔用的CPU時間(毫秒){with or without nice priority,NOT include time spent running a virtual processor)
system-ms #在指定時間內收集的在系統層執行的進程和它的子進程佔用的CPU時間(毫秒)
guest-ms #花在虛擬機上的時間
Command #命令
-V #版本號
-w #報告任務切換情況
PID #PID號
cswch/s #每秒自動上下文切換
nvcswch/s #每秒非自願的上下文切換
Command #命令
顯示字段解釋:https://blog.csdn.net/weixin_42121713/article/details/80784859
vmstat
查看某進程線程數的幾種方法
pstree -p 1388 | wc -l
cat /proc/1388/status | grep Threads
ps xH
手冊中說:H Show threads as if they were processes
這樣可以查看所有存在的線程。ps -mp <PID>
手冊中說:m Show threads after processes
這樣可以查看一個進程起的線程數。