htop、dstat、top、ps命令的使用
一、htop
1、htop介紹
htop是Linux系統下一個基本文本模式的、交互式的進程查看器,主要用於控制檯或shell 中,可以替代top,或者說是top的高級版。
htop命令優點:
(1) 快速查看關鍵性能統計數據,如CPU(多核佈局)、內存/交換使用;
(2) 可以橫向或縱向滾動瀏覽進程列表,以查看所有的進程和完整的命令行;
(3) 殺掉進程時可以直接選擇而不需要輸入進程號;
(4) 通過鼠標操作條目;
(5) 比top啓動得更快;
2、htop安裝
Centos上可以直接使用yum進行安裝:
[root@localhost ~]# yum install -y htop
3、htop使用
默認無選項:
常用選項:
-d #:指定延遲時間間隔;
-u UsrName:僅顯示指定用戶的進程;
-s COLUME:以指定字段進行排序;
子命令
l:顯示選定的進程打開的文件列表;
s:跟蹤選定的進程的系統調用;
t:以層級關係顯示各進程狀態;
a:將選定的進程綁定至某指定的CPU核心;
二、dstat
1、dstat介紹
dstat命令是一個用來替換vmstat、iostat、netstat、nfsstat和ifstat這些命令的工具,是一個全能系統信息統計工具。與sysstat相比,dstat擁有一個彩色的界面,在手動觀察性能狀況時,數據比較顯眼容易觀察;而且dstat支持即時刷新,譬如輸入dstat 3即每三秒收集一次,但最新的數據都會每秒刷新顯示。和sysstat相同的是,dstat也可以收集指定的性能資源,譬如dstat -c即顯示CPU的使用情況。
2、dstat的安裝:
Centos上可以直接使用yum進行安裝:
[root@localhost ~]# yum install -y dstat
3、dstat命令使用:
dstat [-afv] [options..] [delay [count]]
常用選項:
-c, --cpu:顯示cpu相關信息;
-C #,#,...,total
-d, --disk:顯示磁盤的相關信息
-D da,sdb,...,tobal
-g:顯示page相關的速率數據;
-m:Memory的相關統計數據
-n:Interface的相關統計數據;
-p:顯示process的相關統計數據;
-r:顯示io請求的相關的統計數據;
-s:顯示swapped的相關統計數據;
--tcp
--udp
--raw
--socket
--ipc 顯示ipc消息隊列,信號等信息
--top-cpu:顯示最佔用CPU的進程;
--top-io:最佔用io的進程;
--top-mem:最佔用內存的進程;
--top-lantency:延遲最大的進程;
三、top
1、top介紹
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器。下面詳細介紹它的使用方法。top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前臺執行該命令,它將獨佔前臺,直到用戶終止該程序爲止.比較準確的說,top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表.該命令可以按CPU使用.內存使用和執行時間對任務進行排序;而且該命令的很多特性都可以通過交互式命令或者在個人定製文件中進行設定.
2、命令格式:
top [參數]
- display Linux processes
排序:
P:以佔據CPU百分比排序;
M:以佔據內存百分比排序;
T:累積佔用CPU時間排序;
首部信息:
uptime信息:l命令
tasks及cpu信息:t命令
內存信息:m命令
退出命令:q
修改刷新時間間隔:s
終止指定的進程:k
常用選項:
-d #:指定刷新時間間隔,默認爲3秒;
-b:以批次方式顯示;
n #:顯示多少批次;
說明:
PID — 進程id
USER — 進程所有者
PR — 進程優先級
NI — nice值。負值表示高優先級,正值表示低優先級
VIRT — 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
RES — 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
SHR — 共享內存大小,單位kb
S — 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=殭屍進程
%CPU — 上次更新到現在的CPU時間佔用百分比
%MEM — 進程使用的物理內存百分比
TIME+ — 進程使用的CPU時間總計,單位1/100秒
COMMAND — 進程名稱(命令名/命令行
四、ps
1、ps介紹
Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前運行的那些進程。ps命令列出的是當前那些進程的快照,就是執行ps命令的那個時刻的那些進程,如果想要動態的顯示進程信息,就可以使用top命令。
要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,而 ps 命令就是最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等。總之大部分信息都是可以通過執行該命令得到的。
ps 爲我們提供了進程的一次性的查看,它所提供的查看結果並不動態連續的;如果想對進程時間監控,應該用 top 工具。kill 命令用於殺死進程。
2、linux上進程有5種狀態:
(1) 運行(正在運行或在運行隊列中等待)
(2) 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
(3) 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷髮生)
(4) 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放)
(5) 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行)
3、ps工具標識進程的5種狀態碼:
D 不可中斷 uninterruptible sleep (usually IO)
R 運行 runnable (on run queue)
S 中斷 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
(1)命令格式:
ps[選項]
(2)命令功能:
用來顯示當前進程的狀態
(3)命令選項:
a 顯示所有進程
-a 顯示同一終端下的所有程序
-A 顯示所有進程
c 顯示進程的真實名稱
-N 反向選擇
-e 等於“-A”
e 顯示環境變量
f 顯示程序間的關係
-H 顯示樹狀結構
r 顯示當前終端的進程
T 顯示當前終端的所有程序
u 指定用戶的所有進程
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的行程
-C<命令> 列出指定命令的狀況
--lines<行數> 每頁顯示的行數
--width<字符數> 每頁顯示的字符數
--help 顯示幫助信息
--version 顯示版本顯示
4、ps使用:
(1)顯示所有進程信息
(2)顯示指定用戶信息
(3)將目前屬於您自己這次登入的 PID 與相關信息列示出來
(4)列出目前所有的正在內存當中的程序
(5)ps 與grep 常用組合用法,查找特定進程
說明:
USER:該 process 屬於那個使用者賬號的
PID :該 process 的號碼
%CPU:該 process 使用掉的 CPU 資源百分比
%MEM:該 process 所佔用的物理內存百分比
VSZ :該 process 使用掉的虛擬內存量 (Kbytes)
RSS :該 process 佔用的固定的內存量 (Kbytes)
STAT:該程序目前的狀態,主要的狀態有
R :該程序目前正在運作,或者是可被運作
S :該程序目前正在睡眠當中 (可說是 idle 狀態),但可被某些訊號 (signal) 喚醒。
T :該程序目前正在偵測或者是停止了
Z :該程序應該已經終止,但是其父程序卻無法正常的終止他,造成 zombie (疆屍) 程序的狀態
START:該 process 被觸發啓動的時間
TIME :該 process 實際使用 CPU 運作的時間
COMMAND:該程序的實際指令
(6)其他使用:
1. 可以用 | 管道和 more 連接起來分頁查看
命令:
ps -aux |more
2. 把所有進程顯示出來,並輸出到ps2015.txt文件
命令:
ps -aux > ps2015.txt
3. 指定輸出的字段
命令:
ps -o pid,ppid