iostat
iostat 指令詳細地顯示了存儲子系統方面的情況。你通常用iostat來監控存儲子系統總體上運作狀況如何,并且在使用者注意到伺服器運作緩慢之前提早發現輸入/輸出緩慢的問題。相信我,你應該在使用者發現這些問題之前先發現這些問題!
meminfo和free
meminfo為你詳細顯示了記憶體方面的情況。你通常可以使用另一個程式,比如cat和grep,來通路meminfo的資訊。比如說,cat /proc/meminfo為你詳細顯示了伺服器的記憶體在任何一個時間的使用情況。
如果想快速了解記憶體的概要資訊,可以使用free指令。簡而言之,free為你提供了概要資訊;meminfo為你提供了詳細資訊。
mpsta
mpstat指令可以報告多處理器伺服器上每個可用處理器的活動情況。如今,由于多核處理器,這個指令适用于幾乎所有伺服器。mpstat還可以報告所有伺服器上的處理器的平均活動情況。它讓你能夠按照系統或按照處理器來顯示總的處理器統計資訊。這個概要資訊可以在潛在的應用程式問題惹毛使用者之前提醒你注意。
netstat
netstat與ps一樣,也是Linux管理者每天都使用的Linux工具。它顯示了與網絡有關的大量資訊,比如套接口使用情況、路由、接口、協定、網絡統計資訊及更多資訊。最常用的一些選項如下:
-a 顯示套接口的所有資訊
-r 顯示路由資訊
-i 顯示網絡接口的統計資訊
-s 顯示網絡協定的統計資訊
nmon
nmon是Nigel's Monitor的簡稱,這款廣受歡迎的開源工具用來監控Linux系統的性能。nmon可以監控多個子系統的性能資訊,比如處理器使用率、記憶體使用率、運作隊列的資訊、磁盤輸入/輸出統計資訊、網絡輸入/輸出統計資訊、記憶體分頁活動和程序衡量名額。然後,你可以通過curses"圖形化"界面,檢視 nmon的實時系統衡量結果。
想運作nmon,你可以從外殼來啟動該工具。一旦啟動,隻要輸入單鍵指令,就可以選擇要監控的子系統。比如說,想獲得處理器、記憶體和磁盤等方面的統計資訊,隻要分别輸入c、m和d.也可以使用帶-f标志的nmon,将性能統計資訊儲存到CSV檔案中,以便日後分析。
就日常的伺服器監控而言,我覺得nmon是我的Linux系統管理工具包中最有用的一個程式。
pmap
pmap指令用來報告伺服器的程序所使用的記憶體量。你可以用這個工具來确定伺服器上哪些程序被配置設定了記憶體、這些程序中有誰在大量使用記憶體。
ps和pstree
ps和pstree這兩個指令是Linux系統管理者的兩個得力助手。它們都能以清單的形式顯示所有目前在運作的程序。ps可以告訴你伺服器的程式在使用多少的記憶體和處理器時間。pstree顯示的資訊比較少,但着重表明了哪些程序是其他程序的子程序。掌握了這些資訊,你就能發現失控的程序,然後用 Linux"不留活口"的kill指令,來終止這些程序。
sar
sar程式好比是系統監控工具領域的瑞士***。sar指令實際上由三個程式組成:顯示資料的sar、收集資料的sa1以及儲存資料的sa2.一旦安裝完畢,sar就能生成詳細的概要資訊,顯示處理器使用率、記憶體分頁活動、網絡輸入/輸出和傳輸方面的統計資訊、程序建立活動以及磁盤裝置活動。sar和 nmon的一大差別在于,前者更适合長期監控系統,我覺得nmon則比較适合幫助我快速檢視伺服器的運作狀況。
strace
strace 經常被認為是程式員的調試工具,但它的功用不僅僅用來調試。它可以截獲和記錄程序調用系統的情況。因而,它是一個實用的診斷、教學和調試工具。比如說,你可以使用strace來查出某個程式在啟動時實際上使用哪個配置檔案。
不過strace的确有一個缺陷。它在檢查某個程序時,該程序的性能會一落千丈。因而,隻有在我已經有極其充分的理由認為某個程式引起問題的情況下,才使用strace.
tcpdump
tcpdump是一個簡單而可靠的網絡監控實用工具。其基本的協定分析功能讓你能夠粗略檢視網絡上的情況。不過想真正深入分析網絡方面的情況,你應該使用Wireshark(下面有介紹)。
top
top指令顯示了活動程序方面的情況。預設情況下,它顯示了伺服器上運作的最消耗處理器的任務,而且每5秒鐘就重新整理一次清單。你還可以按多個标準對程序進行分類,比如PID(程序ID);年限,最新的列在最前面;時間,按累計時間;以及駐留記憶體使用情況和自啟動以來一直使用處理器的總時間。我覺得它提供了一種快速而簡易的方法,便于檢視有沒有程序開始即将失控、帶來問題。
uptime
uptime可用來檢視某台伺服器運作了多久、有多少個使用者登入上去。它還顯示了伺服器平均負載的概要資訊。負載的最佳值是1或更小,這意味着每個程序可以立即通路處理器、不存在處理器周期丢失的情況。
vmstat
大體上來說,你可以使用vmstat來監控虛拟記憶體方面的情況。Linux不斷使用虛拟記憶體,以獲得最佳的存儲性能。
如果你的應用程式在占用過多的記憶體,你就會遇到頻繁被換出記憶體(page-out)的情況——即程式從記憶體進入到系統硬驅上的交換空間。你的伺服器可能會進入到這個階段:花在管理記憶體分頁上的時間比花在運作應用程式上的時間還多——這種情況被稱為抖動(thrashing)。當你的電腦抖動時,性能就一落千丈。Vmstat可以顯示平均的資料或實際樣本,可以幫助你發覺大量耗用記憶體的程式和程序,以免它們導緻伺服器運作起來如同蝸牛緩行。
Wireshark
Wireshark之前名為Ethereal(而且現在仍經常這麼叫),是tcpdump的同類工具,不過它更為進階,擁有先進得多的協定分析和報告功能。Wireshark既有GUI界面,又有外殼界面。如果你從事專業級的網絡管理工作,隻能使用ethereal.而如果你在使用 Wireshark/ethereal,我強烈建議閱讀Chris Sander所着的《實用資料包分析》(Practical Packet Analysis),該書深入淺出地介紹了如何最充分地利用這款實用程式。
系統
# uname -a # 檢視核心/作業系統/CPU資訊
# head -n 1 /etc/issue # 檢視作業系統版本
# cat /proc/cpuinfo # 檢視CPU資訊
# hostname # 檢視計算機名
# lspci -tv # 列出所有PCI裝置
# lsusb -tv # 列出所有USB裝置
# lsmod # 列出加載的核心子產品
# env # 檢視環境變量
資源
# free -m # 檢視記憶體使用量和交換區使用量
# df -h # 檢視各分區使用情況
# du -sh # 檢視指定目錄的大小
# grep MemTotal /proc/meminfo # 檢視記憶體總量
# grep MemFree /proc/meminfo # 檢視空閑記憶體量
# uptime # 檢視系統運作時間、使用者數、負載
# cat /proc/loadavg # 檢視系統負載
磁盤和分區
# mount | column -t # 檢視挂接的分區狀态
# fdisk -l # 檢視所有分區
# swapon -s # 檢視所有交換分區
# hdparm -i /dev/hda # 檢視磁盤參數(僅适用于IDE裝置)
# dmesg | grep IDE # 檢視啟動時IDE裝置檢測狀況
網絡
# ifconfig # 檢視所有網絡接口的屬性
# iptables -L # 檢視防火牆設定
# route -n # 檢視路由表
# netstat -lntp # 檢視所有監聽端口
# netstat -antp # 檢視所有已經建立的連接配接
# netstat -s # 檢視網絡統計資訊
程序
# ps -ef # 檢視所有程序
# top # 實時顯示程序狀态
使用者
# w # 檢視活動使用者
# id # 檢視指定使用者資訊
# last # 檢視使用者登入日志
# cut -d: -f1 /etc/passwd # 檢視系統所有使用者
# cut -d: -f1 /etc/group # 檢視系統所有組
# crontab -l # 檢視目前使用者的計劃任務
服務
# chkconfig -list # 列出所有系統服務
# chkconfig -list | grep on # 列出所有啟動的系統服務
程式
# rpm -qa # 檢視所有安裝的軟體包
本文轉自 holy2009 51CTO部落格,原文連結:http://blog.51cto.com/holy2010/1736079