htop/dstat/ps命令的使用

top概述:

top是所有類unix系統的必備工具,能直觀方便的查看到系統負載、內存及進程等信息。而htop具有top工具的全部功能且還新增了一些額外的功能和使用體驗改進。與top相比,其具有如下優勢:

  • 與top只提供最消耗資源的進程列表不同,htop提供所有進程的列表,並且使用彩色標識出處理器、swap和內存狀態。

  • 可以在查找應用程序內存泄漏問題時使用;

  • 提供更方便、光標控制的界面來殺死進程;

  • 可以橫向或縱向滾動瀏覽進程列表,以便看到所有的進程和完整的命令行;

  • 啓動比top快。

  • htop軟件的獲取與安裝:

  • 源碼安裝:

  • 在htop項目的官方頁面http://htop.sourceforge.net/中,提供了多種獲取軟件的方式,svn、rpm包等,目前最新版爲1.0.2:

  • [root@magelinuxx htop]# wget http://sourceforge.net/projects/htop/files/htop/1.0.2/htop-1.0.2.tar.gz
    tar zxvf htop-1.0.2.tar.gz
    cd htop-1.0.2
    ./configure
    make
    make install

  • 2.2 RPM安裝:

  • [root@magelinuxx ~]# rpm -ivh http://pkgs.repoforge.org/htop/htop-1.0.2-1.el6.rf.x86_64.rpm
    Retrieving http://pkgs.repoforge.org/htop/htop-1.0.2-1.el6.rf.x86_64.rpm
    warning: /var/tmp/rpm-tmp.sMKDKN: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
    Preparing... ########################################### [100%]

    1:htop ########################################### [100%]

  • 三、htop用法:

  • 直接執行htop命令,即可啓動htop工具,啓動後界面如下:

    wKiom1Z_m1LSNp_cAABE1bdba14957.png

  • 說明:

  • 1、頭部左邊:顯示CPU、內存、Swap佔用率,數字標識的表示CPU每核心使用率

    wKioL1Z_mybwKWH-AAAEsGGUu2o958.png

  • 第一行:進程總數,當前運行進程數

  • 第二行:5、10、15分鐘wKiom1Z_mt2TRnZEAAATz35v3lA078.png

  • 負載

  • 第三行:系統運行時間

  • 3、主體部分:

  • F1:幫助

  • F2:設置htop顯示方式(偏好)

  • <a href="http://www.toxingwang.com/wp-content/uploads/2013/08/htop_setup.jpg" class="cboxElement" rel="example4" 1143"="" style="text-decoration: none; color: rgb(1, 150, 227);">

  • wKiom1Z_mpHDnsQ9AAAg9hG7k3Q719.png

  • 其他參考下面常用操作說明。

  • htop參數:

  • -d[刷新時間]-u[指定用戶]

  • Space:標記進程,可以一起kill掉

  • U:去掉所有進程上的標記

  • s:追蹤進程

  • l:顯示進程打開的文件

  • htop常用操作:

  • F1,h:幫助;

  • F2,S:設置;

  • F3, /:搜索;

  • F4,I:反轉排序順序;

  • F5,T:樹形顯示進程的父進程關係;

  • F6,>:選擇字段進行排序;

  • F7,],-:增加進程優先級;

  • F8,[,+ :減少進程優先級

  • F9,K :kill進程;

  • F10,Q,q:退出


dstat命令的使用

dstat概述

dstat是一個用來替換 vmstat,iostat netstat,nfsstat和ifstat這些命令的工具, 是一個全能系統信息統計工具. 與sysstat相比, dstat擁有一個彩色的界面, 在手動觀察性能狀況時, 數據比較顯眼容易觀察; 而且dstat支持即時刷新, 譬如輸入dstat 3, 即每三秒收集一次, 但最新的數據都會每秒刷新顯示. 和sysstat相同的是, dstat也可以收集指定的性能資源, 譬如 dstat -c 即顯示CPU的使用情況.

dstat的下載安裝

wKioL1Z_ntvB7K_oAAAc5LaOu_k770.png   

~]# yum install -y dstat

wKioL1Z_oeviQYh8AAAZjfjQqWM428.png

安裝完後就可以使用了,dstat非常強大,可以實時的監控cpu、磁盤、網絡、IO、內存等使用情況。

wKioL1Z_o4-RzKrxAAATDQ5h-bM792.png

直接使用dstat,默認使用的是-cdngy參數,分別顯示cpu、disk、net、page、system信息,默認是1s顯示一條信息。可以在最後指定顯示一條信息的時間間隔,如dstat 5是每5s顯示一條,dstat 2 5表示每2s顯示一條,一共顯示5條。

wKiom1Z_pJ3wa88mAAAVMS6IMik146.png
下面對顯示出來的部分信息作一些說明: 

cpu:hiq、siq分別爲硬中斷和軟中斷次數。 

system:int、csw分別爲系統的中斷次數(interrupt)和上下文切換(context switch)。

常用選項

 -c:顯示CPU系統佔用,用戶佔用,空閒,等待,中斷,軟件中斷等信息。 

 -C:當有多個CPU時候,此參數可按需分別顯示cpu狀態,例:-C 0,1 是顯示cpu0和cpu1的信息。

 -d:顯示磁盤讀寫數據大小。 

 -D: hda,total:include hda and total。 

 -n:顯示網絡狀態。 

 -N: eth1,total:有多塊網卡時,指定要顯示的網卡。 

 -l:顯示系統負載情況。 

 -m:顯示內存使用情況。 

 -g:顯示頁面使用情況。 

 -p:顯示進程狀態。 

 -s:顯示交換分區使用情況。 

 -S:類似D/N。 -r:I/O請求情況。 

 -y:系統狀態。 

 --ipc:顯示ipc消息隊列,信號等信息。 

 --socket:用來顯示tcp udp端口狀態。

 -a:此爲默認選項,等同於-cdngy。 

 -v:等同於 -pmgdsc -D total。 

 --output 文件:此選項也比較有用,可以把狀態信息以csv的格式重定向到指定的文件中,以便日後查看。例:  dstat --output /root/dstat.csv & 此時讓程序默默的在後臺運行並把結果輸出到/root/dstat.csv文件中。

以上這些就是最常用的選項,而一般都組合使用如:

dstat -cdlmnpsyt 5 可以得到較全面的系統性能數據,最好全屏查看,否則有些數據無法看全。

wKioL1Z_qFyhAGAGAAAltmvmqbE656.pngdstat的高級用法

dstat的功能非常強大,除了上述常用用法外,還有一些大家不常用的高級用法,如下:

找出佔用資源最高的進程和用戶

--top-(io|bio|cpu|cputime|cputime-avg|mem) 通過這幾個選項,可以看到具體是那個用戶那個進程佔用了相關係統資源,對系統調優非常有效。如查看當前佔用I/O、cpu、內存等最高的進程信息可以使用dstat --top-mem --top-io --top-cpu:

wKiom1Z_quOzDdlnAAAXKEiezLg524.png

ps命令

ps命令概述:

要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,而ps命令就是最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等。總之大部分信息都是可以通過執行該命令得到的。

ps工具標識進程的5種狀態碼: 
D 不可中斷 uninterruptible sleep (usually IO) 收到信號不喚醒和不可運行, 進程必須等待直到有中斷髮生。

R 運行 runnable (on run queue)  正在運行或在運行隊列中等待。

S 中斷 sleeping  休眠中, 受阻, 在等待某個條件的形成或接受到信號

T 停止 traced or stopped  進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行 

Z 僵死 a defunct (”zombie”)  進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放


使用方式:ps [options] [--help]  顯示瞬間行程 (process) 的動態 

參數: 
    ps的參數非常多, 在此僅列出幾個常用的參數並大略介紹含義 
 
   -A顯示所有運行的進程 
      -w顯示加寬可以顯示較多的進程 

      -au顯示較詳細的進程 
      -aux顯示所有包含其他使用者的進程  

      -f顯示進程的所有信息。

       -l以長格式顯示進程信息。

   -r只顯示正在運行的進程。

    -e顯示所有進程

   -u顯示面向用戶的格式(包括用戶名、CPU及內存使用情況等信息)。

   -x顯示所有非控制終端上的進程信息。

   -p顯示由進程ID指定的進程的

   -t顯示指定終端上的進程的信息

根據 CPU 使用來升序排序

~]# ps aux --sort -pcpu

wKioL1Z_uAaDsJaCAAAghC71paA426.png

 根據線程來過濾進程

 ~]# ps -L 4710

wKioL1Z_uP2Bj3iPAAAE9JZ8r3w250.png

  通過CPU和內存的使用率來篩選進程,並且我們希望結果能夠每秒刷新一次。爲此,我們可以將ps命  令和watch命令結合起來。 

 ~]# watch -n 1 'ps aux --sort -pmem,-pcpu'

wKiom1Z_ukiD57j9AAAsKcd1eck758.png

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