就日常的服務器監(jiān)控而言,我覺得nmon是我的Linux系統(tǒng)管理工具包中最有用的一個程序。

pmap

pmap命令用來報告服務器的進程所使用的內存量。你可以用這個工具來確定服務器上哪些進程被分配了內存、這些進程中有誰在大量使用內存。

ps和pstree

ps和pstree這兩個命令是Linux系統(tǒng)管理員的兩個得力助手。它們都能以列表的形式顯示所有目前在運行的進程。ps可以告訴你服務器的程序在使用多少的內存和處理器時間。pstree顯示的信息比較少,但著重表明了哪些進程是其他進程的子進程。掌握了這些信息,你就能發(fā)現失控的進程,然后用Linux“不留活口”的kill命令,來終止這些進程。

sar

sar程序好比是系統(tǒng)監(jiān)控工具領域的瑞士軍刀。sar命令實際上由三個程序組成:顯示數據的sar、收集數據的sa1以及保存數據的sa2。一旦安裝完畢,sar就能生成詳細的概要信息,顯示處理器使用率、內存分頁活動、網絡輸入/輸出和傳輸方面的統(tǒng)計信息、進程創(chuàng)建活動以及磁盤設備活動。sar和nmon的一大區(qū)別在于,前者更適合長期監(jiān)控系統(tǒng),我覺得nmon則比較適合幫助我快速查看服務器的運行狀況。

strace

strace 經常被認為是程序員的調試工具,但它的功用不僅僅用來調試。它可以截獲和記錄進程調用系統(tǒng)的情況。因而,它是一個實用的診斷、教學和調試工具。比如說,你可以使用strace來查出某個程序在啟動時實際上使用哪個配置文件。

不過strace的確有一個缺陷。它在檢查某個進程時,該進程的性能會一落千丈。因而,只有在我已經有極其充分的理由認為某個程序引起問題的情況下,才使用strace。

tcpdump

tcpdump是一個簡單而可靠的網絡監(jiān)控實用工具。其基本的協議分析功能讓你能夠粗略查看網絡上的情況。不過想真正深入分析網絡方面的情況,你應該使用Wireshark(下面有介紹)。

top

top命令顯示了活動進程方面的情況。默認情況下,它顯示了服務器上運行的最消耗處理器的任務,而且每5秒鐘就刷新一次列表。你還可以按多個標準對進程進行分類,比如PID(進程ID);年限,最新的列在最前面;時間,按累計時間;以及駐留內存使用情況和自啟動以來一直使用處理器的總時間。我覺得它提供了一種快速而簡易的方法,便于查看有沒有進程開始即將失控、帶來問題。

uptime

uptime可用來查看某臺服務器運行了多久、有多少個用戶登錄上去。它還顯示了服務器平均負載的概要信息。負載的最佳值是1或更小,這意味著每個進程可以立即訪問處理器、不存在處理器周期丟失的情況。

vmstat

大體上來說,你可以使用vmstat來監(jiān)控虛擬內存方面的情況。Linux不斷使用虛擬內存,以獲得最佳的存儲性能。

如果你的應用程序在占用過多的內存,你就會遇到頻繁被換出內存(page-out)的情況——即程序從內存進入到系統(tǒng)硬驅上的交換空間。你的服務器可能會進入到這個階段:花在管理內存分頁上的時間比花在運行應用程序上的時間還多——這種情況被稱為抖動(thrashing)。當你的電腦抖動時,性能就一落千丈。Vmstat可以顯示平均的數據或實際樣本,可以幫助你發(fā)覺大量耗用內存的程序和進程,以免它們導致服務器運行起來如同蝸牛緩行。

Wireshark

Wireshark之前名為Ethereal(而且現在仍經常這么叫),是tcpdump的同類工具,不過它更為高級,擁有先進得多的協議分析和報告功能。Wireshark既有GUI界面,又有外殼界面。如果你從事專業(yè)級的網絡管理工作,只能使用ethereal。而如果你在使用Wireshark/ethereal,我強烈建議閱讀Chris Sander所著的《實用數據包分析》(Practical Packet Analysis),該書深入淺出地介紹了如何最充分地利用這款實用程序。

本文只是從總體上概述了一些Linux最有價值的系統(tǒng)監(jiān)控程序。不過,如果你熟練掌握了這些程序,就為成為頂尖的 Linux系統(tǒng)管理員打下了基礎。

原文鏈接: http://h30565.www3.hp.com/t5/Feature-Articles/16-Linux-Server-Monitoring-Commands-You-Really-Need-To-Know/ba-p/1936

分享到

tangrong

相關推薦