接着上一篇博文繼續 【No.1】監控Linux性能25個命令行工具php
該命令能夠顯示每一個CPU的佔用狀況,若是有一個CPU佔用率特別高,那麼有多是一個單線程應用程序引發的
html
mpstat -P ALL 1 Linux 3.13.0-75-generic (lnmp) 06/25/2016 _x86_64_ (2 CPU) 02:28:59 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 02:29:00 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 02:29:00 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 02:29:00 PM 1 0.00 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 99.00
該命令輸出進程的CPU佔用率,該命令會持續輸出,而且不會覆蓋以前的數據,能夠方便觀察系統動態前端
$ pidstat 1 Linux 3.13.0-75-generic (lnmp) 06/25/2016 _x86_64_ (2 CPU) 02:30:20 PM UID PID %usr %system %guest %CPU CPU Command 02:30:21 PM 0 9 0.00 0.98 0.00 0.98 1 rcuos/1 02:30:21 PM UID PID %usr %system %guest %CPU CPU Command 02:30:22 PM 0 977 1.00 0.00 0.00 1.00 1 redis-server 02:30:22 PM UID PID %usr %system %guest %CPU CPU Command 02:30:23 PM 1000 19938 0.00 1.00 0.00 1.00 1 sshd 02:30:23 PM 1000 20909 0.00 1.00 0.00 1.00 0 sshd
free命令能夠查看系統內存的使用狀況,-m參數表示按照兆字節展現。最後兩列分別表示用於IO緩存的內存數,和用於文件系統頁緩存的內存數。須要注意的是,第二行-/+ buffers/cache,看上去緩存佔用了大量內存空間。這是Linux系統的內存使用策略,儘量的利用內存,若是應用程序須要內存,這部份內存會當即被回收並分配給應用程序。所以,這部份內存通常也被當成是可用內存。linux
若是可用內存很是少,系統可能會動用交換區(若是配置了的話),這樣會增長IO開銷(能夠在iostat命令中提現),下降系統性能。ios
$ free -m total used free shared buffers cached Mem: 363 313 50 0 3 104 -/+ buffers/cache: 204 159 Swap: 767 155 612
sar命令在這裏能夠查看網絡設備的吞吐率。在排查性能問題時,能夠經過網絡設備的吞吐量,判斷網絡設備是否已經飽和。web
sar -n DEV 1 Linux 3.13.0-75-generic (lnmp) 06/25/2016 _x86_64_ (2 CPU) 02:33:01 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 02:33:02 PM eth0 15.84 15.84 0.93 1.69 0.00 0.00 0.00 0.00 02:33:02 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 02:33:02 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
查看TCP鏈接狀態redis
$ sar -n TCP,ETCP 1 Linux 3.13.0-75-generic (lnmp) 06/25/2016 _x86_64_ (2 CPU) 02:35:21 PM active/s passive/s iseg/s oseg/s 02:35:22 PM 0.00 0.00 8.00 8.00
active/s:每秒本地發起的TCP鏈接數,既經過connect調用建立的TCP鏈接小程序
passive/s:每秒遠程發起的TCP鏈接數,即經過accept調用建立的TCP鏈接緩存
retrans/s:每秒TCP重傳數量安全
NetHogs是一個開放源源代碼的很小程序(與Linux下的top命令很類似),它密切監視着系統上每一個進程的網絡活動。同時還追蹤着每一個程序或者應用所使用的實時網絡帶寬
$ sudo apt-get install nethogs $ sudo nethogs
iftop是另外一個在控制檯運行的開放源代碼系統監控應用,它顯示了系統上經過網絡接口的應用網絡帶寬使用(源主機或者目的主機)的列表,這個列表按期更新。iftop用於監視網絡的使用狀況,而'top'用於監視CPU的使用狀況。iftop是'top'工具系列中的一員,它用於監視所選接口,並顯示兩個主機間當前網絡帶寬的使用狀況
$ sudo apt-get install iftop $ sudo iftop
IPTraf
psacct 或者 acct
Monit
Monitorix
Arpwatch
Suricata
VnStat PHP
Nagios
Zabbix
IPTraf是一個在Linux控制檯運行的、開放源代碼的實時網絡(局域網)監控應用。它採集了大量信息,好比經過網絡的IP流量監控,包括TCP標記、ICMP詳細信息、TCP/UDP流量分離、TCP鏈接包和字節數。同時還採集有關接口狀態的常見信息和詳細信息:TCP、UDP、IP、ICMP、非IP,IP校驗和錯誤,接口活動等。
有關IPTraf工具用法以及其餘更多信息,請訪問: IPTraf網絡監控工具
psacct或者acct工具用於監視系統裏每一個用戶的活動情況。這兩個服務進程運行在後臺,它們對系統上運行的每一個用戶的全部活動進行近距離監視,同時還監視這些活動所使用的資源狀況。
系統管理員可使用這兩個工具跟蹤每一個用戶的活動,好比用戶正在作什麼,他們提交了那些命令,他們使用了多少資源,他們在系統上持續了多長時間等等。
有關這些命令的安裝和用法舉例信息,請參閱文章:使用psacct或者acct監視用戶活動
Monit是一個免費的開源軟件,也是一個基於網絡的進程監控工具。它能自動監控和管理系統進程,程序,文件,文件夾,權限,總和驗證碼和文件系統。
這個軟件能監控像Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH這樣的服務。你能夠經過命令行或者這個軟件提供的網絡藉口來查看系統狀態。
更多內容請參閱:用Monit監控Linux進程
Monitorix 是一個免費的輕量級應用工具,它的設計初衷是運行和監控Linux/Unix服務器系統和資源等。它有一個HTTP 網絡服務器,這個服務器有規律的收集系統和網絡的信息並以圖形化的形式展現出來。它監控系統的平均負載和使用,內存分配、磁盤健康情況、系統服務、網絡端口、郵件統計(Sendmail,Postfix,Dovecot等),MySQL統計,等等。它就是用來監控系統的整體性能,幫助發現失誤、瓶頸和異常活動的
5:Arpwatch – 以太網活動監視器
Arpwatch被設計用來監控Linux上的以太網地址解析 (MAC和IP地址的變化)。他在一段時間內持續監控以太網活動並輸出IP和MAC地址配對變更的日誌。它還能夠向管理員發送郵件通知,對地址配對的增改發出警告。這對於檢測網絡上的ARP攻擊頗有用。
更多信息請參閱 : Arpwatch to Monitor Ethernet Activity
6:Suricata – 網絡安全監控
Suricata 是一個開源的高性能網絡安全、入侵檢測和反監測工具,能夠運行Linux、FreeBSD和Windows上。非營利組織OISF (Open Information Security Foundation)開發並擁有其版權。
更多信息請參閱 : Suricata – A Network Intrusion Detection and Prevention System
7:VnStat PHP – 網絡流量監控
VnStat PHP 是流行網絡工具"vnstat"的基於web的前端呈現。VnStat PHP 將網絡使用狀況呈如今漂亮的圖形界面中。他能夠顯示以小時、日、月計的上傳和下載流量並輸出總結報告。
更多信息請參閱 : VnStat PHP – Monitoring Network Bandwidth
8:Nagios – 網絡/服務器監控
Nagios是領先而強大的開源監控系統,他可讓網絡/系統管理員在問題影響到正常的業務以前發現並解決它們。有了Nagios系統,管理員能夠在單個窗口內遠程檢測Linux、Windows、開關、路由器和打印機。它能夠危險警告並指出系統/服務器是否有異常,這能夠間接幫助你在問題發生以前採起搶救措施。
9:Zabbix 同Nagios