調優

命令

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


查看某進程線程數的幾種方法

  1. pstree -p 1388 | wc -l 

  2. cat /proc/1388/status | grep Threads

  3. ps xH
    手冊中說:H Show threads as if they were processes
    這樣可以查看所有存在的線程。

  4. ps -mp <PID>
    手冊中說:m Show threads after processes
    這樣可以查看一個進程起的線程數。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章