大多數
Linux發行版都集成了一些監視工具。這些工具可以獲取有關系統活動的信息的詳細指標。通過這些工具,你可以發現產生系統性能問題可能存在原因和找出系統瓶頸問題如磁盤、CPU、內存 、網絡。
(1)
top – 查看活動進程的命令以及常用的快捷鍵
-t 切換顯示進程和 CPU 狀態信息。
-m 切換顯示進程和 CPU 狀態信息。
-A 分類顯示各種系統資源的消耗情況。可用於快速識別系統的性能要求極高的任務。
-o 改變顯示項目的順序。
-r 重新設置進程的優先級別。(系統提示用戶輸入需要改變的進程 PID 以及需要設置的優先級值。)
-k 終止一個進程。(系統將提示用戶輸入需要終止的進程 PID)
-s 改變刷新的時間間隔。
-u 查看指定用戶的進程。
(2) vmstat – 系統活動、硬件以及系統信息
關於內核線程、虛擬內存、磁盤、陷阱和 CPU 活動的統計信息。
(3 )w – 找到已登陸的用戶並且查看他們做了什麼操作
(4) uptime – 系統已運行的時間
Uptime 命令可以查看系統已經運行了多長時間。截止當前時間日期,系統已經運行了多長
時間,當前登錄的用戶有哪些,已經在過去的 1,5,15 分鐘,系統的平均負載值情況。
(5) ps – 顯示進程
ps 命令用來報告當前進程的快照。要選擇所有進程,使用-A 或-e 選項:
自定義查找進程
ps -ef | grep cpu
找出最耗費內存的前 10 個進程:
#ps-auxf|sort-nr-k4|head-10
找出最耗費 CPU 的前 10 個進程:
#ps-auxf|sort-nr-k3|head-10
(6) free – 查看內存的使用情況
free 指令會顯示內存的使用情況,包括實體內存,虛擬的交換文件內存,共享內存區段,以
及系統核心使用的緩沖區等。
參數:
-b 以Byte 為單位顯示內存使用情況。
-k 以KB 為單位顯示內存使用情況。
-m 以MB 為單位顯示內存使用情況。
-o 不顯示緩沖區調節列。
-s <間隔秒數>持續觀察內存使用狀況。
-t 顯示內存總和列。
-V 顯示版本信息。
(7) iostat – 監視 CPU 平均負載值,I/O 狀態
該命令用於報告 CPU 和輸入/輸出設備,分區和網絡文件系統(NFS)的詳細統計數據。
參數:
-d 表示,顯示設備(磁盤)使用狀態;
-k 某些使用 block 為單位的列強制使用 Kilobytes為單位;
1 10 表示,數據顯示每隔 1 秒刷新一次,共顯示 10 次。
(8) sar - 收集和報告系統狀態信息
Sar命令是用來收集,報告和保存系統活動信息的。
Sar把自已收集的數據以二進制格式保存在/var/log/sa裡
使用 sar-d可以得到當天磁盤活動的情況匯總
sar-n DEV則能給出網絡接口的統計信息
sar-A可以報告所有的信息
sar適用於快速粗略了解歷史信息。
sar命令行的常用格式: sar[options][-o
file]t[n]
options為命令行選項,sar命令的選項很多,下面只列出常用選項:
-A:所有報告的總和
-u:CPU利用率
-v:進程、I節點、文件和鎖表狀態
-d:硬盤使用報告
-r:沒有使用的內存頁面和硬盤塊
-g:串口 I/O的情況
-b:緩沖區使用情況
-a:文件讀寫情況
-c:系統調用情況
-R:進程的活動情況
-y:終端設備活動情況
-w:系統交換活動。
(9) mpstat – 實時系統監視工具
mpstat 是實時系統監控工具。其報告與 CPU 的一些統計信息,這些信息存放在/proc/stat 文件中。在多 CPUs 系統裡,其不但能查看所有 CPU 的平均狀況信息,而且能夠查看特定 CPU 的信息。
下面只介紹 mpstat 與 CPU 相關的參數,mpstat 的語法如下:
Usage:mpstat[options...][<interval>[<count>]]
Optionsare:
[-P{<cpu>|ALL}][-V]
顯示每個進程對 CPU 的平均利用率:
#mpstat-PALL
(10) pmap – 查看進程使用內存的情況
pmap 命令用來報告進程使用對於的相應內存的情況。使用下面命令可以查出某些內存瓶頸問題的原因。
#pmap-dPID
顯示進程號為 47394 的進程所用內存的信息:
#pmap-d47394
(11) netstat和 ss – 查看網絡情況
netstat 命令顯示網絡連接,路由表,網絡接口統計,偽裝連接,組播成員身份。ss 命令類
似 netstat 命令的信息。
(12) iptraf – 實時網絡狀況監視工具
iptraf 是一款彩色的交互式的 IP 局域網監控工具。這是一個基於 ncurses 的 IP LAN 監視工具,它會統計網絡中產生的各種數據,包括 TCP 信息,UDP 連接數,ICMP 和 OSPF 信息,以太網負載信息,節點統計,IP 校驗和錯誤,以及其他信息。
(13) tcpdump – 網絡狀況分析工具
tcpdump 用來抓包的一個的簡單命令。但是,要使用該工具,你需熟悉 TCP /IP 協議。例如:顯示網絡中有關 DNS 的信息,請輸入:
#tcpdump-ieth1'udpport53'
顯示去往 10.15.62.188 的所有 ftp 會話信息:
#tcpdump-ieth1'dst10.15.62.188and(port21or20'
顯示去往 192.168.1.5 的所有 HTTP 會話信息:#tcpdump-nieth0'dst192.168.1.5andtcpandporthttp' 使用 Wireshark 查看 tcpdump 抓包文件的詳細信息,輸入:
#tcpdump-n-ieth1-s0-woutput.txtsrcordstport80
(14) strace – 系統調用工具
strace是 Linux環境下的一款程序調試工具,用來監察一個應用程序所使用的系統呼叫及它所接收的系統信息。strace是一個有用的小工具,它可以通過跟蹤系統調用來讓你知道一個程序在後台所做的事情。Strace是一個基礎的調試工具,在大多數 Linux系 統上默認已經安裝;但是即便你不是在跟蹤一個問題的時候它也是一個極好的軟件。它能告訴你很多關於一個Linux程序怎樣工作的信息
(15) Proc 文件系統
Linux 內核提供了一種通過 /proc 文件系統,在運行時訪問內核內部數據結構、改變內核設置的機制。幾個例子:
#
cat/proc/cpuinfo
#cat/proc/meminfo
#cat/proc/zoneinfo
#cat/proc/mounts
Related: 要更詳細地去了解/proc 文件系統,你可以去查看官方文檔。
(16)
Nagios – 服務器和網絡信息監視工具Nagios 是一款很流行的開源系統和網絡監控應用軟件。你可以很輕松地用它監控所有的主機,網絡設備和服務。在系統或服務狀態異常時會第一時間通知網站
運維人員(發出郵件或短信報警),在狀態恢復正常後發出郵件或短信通知。
(17) Cacti -基於 WEB 的監視工具
(18) KDE System Guard – 圖形化的系統監視工具
(19) Gnome System Monitor – 圖形化系統監視工具
(20) nmap – 掃描主機的端口開放情況.
(21) lsof -列出系統當前打開的文件,網絡連接以及更多信息。
(22) ntop web based tool – Ntop 是一款監控網絡流量工具,它顯示的網絡狀況更加直觀、詳細。Ntop 甚至可以列出每個節點計算機的網絡帶寬利用率。它是一個靈活的、功能齊全的,用來監控和解決局域網問題的工具;可以自動從網絡中識別有用的信息;將截獲的數據包轉換成易於識別的格式;對網絡環境中通信失敗的情況進行分析;探測網絡通信的時間和過程等。
(23) Conky - Conky 是 x-window 下,一款免費的,輕量級系統監控的工具。它能夠
監控許多系統環境的狀態,其中包括的 CPU,內存,交換空間,磁盤存儲,溫度,
進程,網絡接口,電池電量,系統消息,電子郵件收件箱等。
(24) GKrellM –它來用於監測 CPU 狀態,內存,硬盤,網絡接口,本地和遠程郵箱,以及其他的東西等。
(25) vnstat – vnstat 是一個基於控制台的網絡流量監控軟件,它會保持每月,每天,每小時,監視並記錄所選定網絡接口的網絡通信狀況。
(26) htop – htop 是一個增強版本的 top,同時也是一個交互式進程查看器,它可以以樹狀結構來顯示進程列表。
(27) mtr – mtr 在單一的網絡診斷工具上,結合了 traceroute 和 ping 程序的功能。