20個命令行工具監控 Linux 系統性能
對於每個系統管理員或網路管理員來說,每天要監控和調試 Linux 系統性能問題都是非常困難的工作。我已經有5年 Linux 管理員的工作經歷,知道如何監控系統使其保持正常運行。為此,我們編寫了對於 Linux/Unix 系統管理員非常有用的並且最常用的20個命令行系統監視工具。這些命令可以在所有版本的 Linux 下使用去監控和查找系統性能的實際原因。這些監控命令足夠你選擇適合你的監控場景。
1. top — Linux 系統進程監控
top 命令是性能監控程序,它可以在很多 Linux/Unix 版本下使用,並且它也是 Linux 系統管理員經常使用的監控系統性能的工具。Top 命令可以定期顯示所有正在運行和實際運行並且更新到列表中,它顯示出 CPU 的使用、內存的使用、交換內存、緩存大小、緩衝區大小、過程式控制制、用戶和更多命令。它也會顯示內存和 CPU 使用率過高的正在運行的進程。當我們對 Linux 系統需要去監控和採取正確的行動時,top 命令對於系統管理員是非常有用的。讓我們看下 top 命令的實際操作。
# top
2. vmstat — 虛擬內存統計
vmstat 命令是用於顯示虛擬內存、內核線程、磁碟、系統進程、I/O 模塊、中斷、CPU 活躍狀態等更多信息。在默認的情況下,Linux 系統是沒有 vmstat 這個命令的,如果你要使用它,必須安裝一個包名叫 sysstat 的程序包。命令格式常用用法如下:
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0
1
2
3
4
|
<strong># vmstat</strong>
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0
|
3. lsof — 打開文件列表
lsof 命令對於很多 Linux/Unix 系統都可以使用,主要以列表的形式顯示打開的文件和進程。
打開的文件主要包括磁碟文件、網路套接字、管道、設備和進程。使用這個命令的主要原因是一個一個盤不能卸載並且顯示文件正在使用或者打開的錯誤信息。這個命令很容易看出哪些文件正在使用。這個命令最常用的格式:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 104,2 4096 2 /
init 1 root rtd DIR 104,2 4096 2 /
init 1 root txt REG 104,2 38652 17710339 /sbin/init
init 1 root mem REG 104,2 129900 196453 /lib/ld-2.5.so
init 1 root mem REG 104,2 1693812 196454 /lib/libc-2.5.so
init 1 root mem REG 104,2 20668 196479 /lib/libdl-2.5.so
init 1 root mem REG 104,2 245376 196419 /lib/libsepol.so.1
init 1 root mem REG 104,2 93508 196431 /lib/libselinux.so.1
init 1 root 10u FIFO 0,17 953 /dev/initctl
1
2
3
4
5
6
7
8
9
10
11
12
|
<strong># lsof</strong>
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 104,2 4096 2 /
init 1 root rtd DIR 104,2 4096 2 /
init 1 root txt REG 104,2 38652 17710339 /sbin/init
init 1 root mem REG 104,2 129900 196453 /lib/ld-2.5.so
init 1 root mem REG 104,2 1693812 196454 /lib/libc-2.5.so
init 1 root mem REG 104,2 20668 196479 /lib/libdl-2.5.so
init 1 root mem REG 104,2 245376 196419 /lib/libsepol.so.1
init 1 root mem REG 104,2 93508 196431 /lib/libselinux.so.1
init 1 root 10u FIFO 0,17 953 /dev/initctl
|
4. tcpdump — 網路數據包分析器
tcpdump 是一種使用最廣泛的命令行網路數據包分析器或數據包嗅探程序,主要用於捕獲和過濾 TCP/IP 包收到或者轉移在一個網路的特定借口信息。它也提供了一個選項參數去保存將捕獲的包在一個文件中用於以後分析使用,tcpdump 幾乎在所有的 Linux 版本中都是可用的。
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648
22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648
22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347
1
2
3
4
5
6
7
|
<strong># tcpdump -i eth0</strong>
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648
22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648
22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347
|
5. netstat — 網路統計
netstat 命令是一個監控網路數據包傳入和傳出的統計界面的命令行工具。它對於許多系統管理員去監控網路性能和解決網路相關問題是一個非常有用的工具。
# netstat -a | more
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp 0 0 *.* *.* CLOSED
tcp4 0 0 *.* *.* CLOSED
tcp 0 0 *.* *.* CLOSED
tcp4 0 0 *.* *.* CLOSED
tcp 0 0 *.* *.* CLOSED
tcp4 0 0 *.* *.* CLOSED
tcp4 0 0 loopback.32848 loopback.32849 ESTABLISHED
tcp4 0 0 loopback.32849 loopback.32848 ESTABLISHED
tcp 0 0 *.ftp *.* LISTEN
tcp4 0 0 *.ssh *.* LISTEN
tcp4 0 0 *.smtp *.* LISTEN
tcp4 0 0 loopback.32897 loopback.32898 ESTABLISHED
tcp4 0 0 loopback.32898 loopback.32897 ESTABLISHED
tcp4 0 0 *.sunrpc *.* LISTEN
tcp 0 0 *.smux *.* LISTEN
tcp4 0 0 loopback.32803 loopback.33149 ESTABLISHED
tcp4 0 0 loopback.33149 loopback.32803 ESTABLISHED
tcp4 0 0 lc4fis22p.33661 lc4fis15.fhdba01c ESTABLISHED
tcp4 0 0 loopback.32848 loopback.33152 ESTABLISHED
tcp4 0 0 loopback.33152 loopback.32848 ESTABLISHED
6. htop — 進程監控
htop 是一個更加先進的互動式的實時監控工具。htop 與 top 命令非常相似,但是他有一些非常豐富的功能,如用戶友好界面管理進程、快捷鍵、橫向和縱向進程等更多的。htop 是一個第三方工具並不包括在 Linux 系統中,你需要使用包管理工具進行安裝。
1
|
<strong># htop</strong>
|
7. iotop — 監控 Linux 磁碟 I/O
iotop 也是和 top 和 htop 命令相似,但是它會有一個報告功能去監控和顯示實時的磁碟 I/O 輸入和輸出和程序進程。這個工具對於查找精確的高的磁碟讀/寫過程是非常有用的。
<a href="http://www.linuxstory.org/wp-content/uploads/2015/12/7.jpg"><img src="http://www.linuxstory.org/wp-content/uploads/2015/12/7.jpg" alt="7" class="alignnone size-full wp-image-5103" height="420" width="630" /></a></strong>
1
2
|
<strong># iotop
<a href="http://www.linuxstory.org/wp-content/uploads/2015/12/7.jpg"><img src="http://www.linuxstory.org/wp-content/uploads/2015/12/7.jpg" alt="7" class="alignnone size-full wp-image-5103" height="420" width="630" /></a></strong>
|
8. iostat — 輸入/輸出統計
iostat 是收集和展示系統輸入和輸出存儲設備統計的簡單工具。這個工具通常用於查找存儲設備性能問題,包括設備、本地磁碟、例如 NFS 遠程磁碟。
Linux 2.6.18-238.9.1.el5 (tecmint.com) 09/13/2012
avg-cpu: %user %nice %system %iowait %steal %idle
2.60 3.65 1.04 4.29 0.00 88.42
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
cciss/c0d0 17.79 545.80 256.52 855159769 401914750
cciss/c0d0p1 0.00 0.00 0.00 5459 3518
cciss/c0d0p2 16.45 533.97 245.18 836631746 384153384
cciss/c0d0p3 0.63 5.58 3.97 8737650 6215544
cciss/c0d0p4 0.00 0.00 0.00 8 0
cciss/c0d0p5 0.63 3.79 5.03 5936778 7882528
cciss/c0d0p6 0.08 2.46 2.34 3847771 3659776
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<strong># iostat</strong>
Linux 2.6.18-238.9.1.el5 (tecmint.com) 09/13/2012
avg-cpu: %user %nice %system %iowait %steal %idle
2.60 3.65 1.04 4.29 0.00 88.42
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
cciss/c0d0 17.79 545.80 256.52 855159769 401914750
cciss/c0d0p1 0.00 0.00 0.00 5459 3518
cciss/c0d0p2 16.45 533.97 245.18 836631746 384153384
cciss/c0d0p3 0.63 5.58 3.97 8737650 6215544
cciss/c0d0p4 0.00 0.00 0.00 8 0
cciss/c0d0p5 0.63 3.79 5.03 5936778 7882528
cciss/c0d0p6 0.08 2.46 2.34 3847771 3659776
|
9. IPTraf —實時IP區域網監控
IPTraf 是一個基於開源的 Linux 系統實時網路(IP 網路)監測的工具。它能收集到各種各樣的信息,如通過網路對 IP 流量監測,包括 TCP 標誌信息、ICMP 詳細細節、TCP/UDP 流量故障、TCP 連接的數據包和拜恩計數。並且它還收集 TCP,UDP,ICMP,IP,非 IP,IP 校驗錯誤,界面活性等一般信息和詳細信息的介面統計數據。
10. Psacct 或者 Acct — 監視用戶活動
Psacct 或者 Acct 是用於監測每個用戶對系統的活躍狀態的一個非常有用的工具。在後台有兩個守護進程在運行,一個是密切關注系統上每個用戶的整體活動,另一個進程關注有哪些資源被它們消耗。
這個工具對於系統管理員是非常有用的去跟蹤每個用戶的活動,可以知道用戶正在做什麼,發出了什麼樣的命令,佔用了多少資源,多長時間活躍在系統上。
11. Monit — 程序和服務監測
這是一個免費的開源的基於 web 程序的自動監控和管理系統進程、程序、文件、目錄、許可權、校驗文件系統。它監控的服務包括 Apache、MYSQL、Mail、FTP、Nginx 等等。系統狀態是可以從命令行或者自己的網路介面來查看。
12. NetHogs — 監視每個進程的網路帶寬
NetHogs 是一個開源的漂亮的小程序(類似於 Linux 上面的 top 命令),在您的系統上保持每個進程的網路活動狀態。它也保持了一個程序或者應用實時的網路流量帶寬使用情況。
13. iftop — 網路帶寬監控
iftop 是另一個基於終端的開源的系統監測工具,主要功能是通過你自己系統上的網路介面顯示一個經常更新的網路帶寬利用率的列表(即源主機和目的主機)。iftop 監控的是網路的使用情況,而 top 監控的是 CPU 的使用情況。iftop 監視一個選定的介面並且顯示兩台主機之間當前寬頻的使用情況。
14. Monitorix — 系統和網路監控
Monitorix 是一個儘可能多的在 Linux/Unix 上一個輕量級監控工具,主要設計是監控正在運行的系統和網路資源。它有一個內置的 HTTP web 服務去定期收集系統和網路信息並顯示成圖片。它可以監視系統的平均負載使用、內存的分配、磁碟驅動器、系統服務、網路埠、郵件統計(Sendmail、Postfix、Dovecot 等等)、MYSQL 資料庫等等更多的服務。它的主要目的是監控整個系統的性能,並且有助於監測故障、瓶頸、異常活動等狀況。
15. Arpwatch — 乙太網活動監控器
Arpwatch是一種用來監視 Linux 網路的乙太網的網路流量的地址解析(網路地址轉換)的一個程序。它一直隨著網路時間戳的變化監視乙太網流量和產生日誌的 IP 和 MAC 地址對。當一個 IP 地址或 MAC 地址對發生變化的時候,它會發送電子郵件通知管理員。
並且它在檢測 ARP 攻擊是非常有用的。
16. Suricata — 網路安全監控
Suricata 是一個高性能的開源的網路安全與入侵檢測與預防 Linux、FreeBSD、Windows 等操作系統的監控工具。它是一個非營利基金 OISF(Open Information Security Foundation)擁有的。
17. VnStat PHP — 監測網路帶寬
VnStat PHP 是一個 web 前端應用最流行的社交工具叫「vnstat」。 VnStat PHP 使用了很好的圖形模式監控網路流量的使用情況。它顯示了每時、每天、每月的總結報告中的網路流量使用情況。
18. Nagios — 網路/伺服器監控
Nagios 是一個領先的開源的強大的監控系統,網路/系統管理員在他們影響主要業務流程之前識別和解決伺服器相關的問題。Nagios 可以監控遠程 Linux、Windows、開關、單窗口的路由器和印表機。它能顯示你的網路和伺服器關鍵的告警,有利於在錯誤反生之前幫助你解決問題。
19. Nmon — 監控Linux系統性能
Nmon(即奈吉爾性能監視器)工具用來監視 Linux 系統的所有資源包括:CPU、內存、磁碟使用率、網路上的進程、NFS、內核等等。這個工具有兩個模式:即在線模式和捕捉模式。在線模式適用於實時監控,捕捉模式用於存儲輸出為 CSV 格式後的處理。
20. Collectl — 一體化性能檢測工具
Collectl 是另一個功能強大的基於命令行的監控工具,它可用於收集有關係統資源的信息,包括 CPU 使用率、內存、網路、節點、進程、NFS、TCP 套接等等。
我們想知道你使用什麼樣的監控程序來監控你的伺服器性能?如果我們錯過你想要的任何工具,請通過評論告知我們,並且不要忘記分享他。
原文鏈接:http://www.tecmint.com/command-line-tools-to-monitor-linux-performance/
LinuxStory翻譯鏈接:http://www.linuxstory.org/command-line-tools-to-monitor-linux-performance/
https://10.linuxstory.net/command-line-tools-to-monitor-linux-performance/zh-tw/
20個命令行工具監控 Linux 系統性能的更多相关文章
- 20个命令行工具监控Linux系统性能
作为Linux/Unix 系统管理员需要掌握一些常用的工具用于检测系统性能.在这里,dodo为大家推荐非常20个有用的并且最常用的命令行系统监视工具: 1. top -Linux系统进程监控 top ...
- 20个命令行工具监控 Linux 系统性能(转载)
1. top — Linux 系统进程监控 top 命令是性能监控程序,它可以在很多 Linux/Unix 版本下使用,并且它也是 Linux 系统管理员经常使用的监控系统性能的工具.Top 命令可以 ...
- 20个命令行工具监控 Linux 系统性能
对于每个系统管理员或网络管理员来说,每天要监控和调试 Linux 系统性能问题都是非常困难的工作.我已经有5年 Linux 管理员的工作经历,知道如何监控系统使其保持正常运行.为此,我们编写了对于 L ...
- 20个命令行工具监控 Linux 系统性能【转载】
对于每个系统管理员或网络管理员来说,每天要监控和调试 Linux 系统性能问题都是非常困难的工作.我已经有5年 Linux 管理员的工作经历,知道如何监控系统使其保持正常运行.为此,我们编写了对于 L ...
- 监控 Linux 系统的 7 个命令行工具
监控 Linux 系统的 7 个命令行工具: " 深入 关于Linux最棒的一件事之一是你能深入操作系统,来探索它是如何工作的,并寻找机会来微调性能或诊断问题.这里有一些基本的命令行工具,让 ...
- 20个linux命令行工具监视性能(下)
昨天晚上第一次翻译了<20 Command Line Tools to Monitor Linux Performance>中的前十个命令,翻译得不是很好,今天晚上继续把后面的十个也翻译给 ...
- 20个linux命令行工具监视性能(上)
对于每一个系统管理员或网络管理员每天监视或调试linux系统的性能问题是一件非常困难的事,在it行业作为一个linux管理员五年之后,我开始知道监视和保持系统启动和运行有多么的困难.由于这个原因,我们 ...
- 【No.1】监控Linux性能25个命令行工具
如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?通过以下命令或者工具可以快速定位 top vmstat lsof tcpdump netsta ...
- 监控Linux性能的18个命令行工具
监控 Linux 性能的 18 个命令行工具 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保 ...
随机推荐
- 补比赛——牛客OI周赛9-普及组
比赛地址 A 小Q想撸串 题目分析 普及T1水题惯例.字符串中找子串. Code #include<algorithm> #include<iostream> #include ...
- Java 逻辑运算符相关解析
问:定简单说说 Java 中 & 与 && 有什么区别?| 与 || 呢? 答:& 是位运算符,&& 是布尔逻辑运算符,| 与 || 类似同理.在进行逻 ...
- java File过滤文件的多种方法
package com.qf.part1; import java.io.File; import java.io.FileFilter; import java.io.IOException; pu ...
- JavaScript学习第一篇
在学习之前让我们了解了解JavaScript的由来 Javascript是一种web技术,最初起名叫LiveScript,它是Netscape开发出来一种脚本语言,其目的是为了扩展基本的Html的功能 ...
- hadoop平台搭建
前言 这是小的第一次搭建hadoop平台,写下这篇博客有以下几个目的(ps:本博只记录在linux系统下搭建hadoop的步骤,如果需要了解在其他平台上搭建hadoop的步骤,还请移步): 1.希望大 ...
- HTTP请求时候总是设置的两个参数ConnectionTimeOut和SocketTimeOut
在HTTP请求时候总是设置两个参数,就是连接超时和Socket超时 public static final String SO_TIMEOUT = "http.socket.timeout& ...
- 【easyui-combobox】下拉菜单自动补全功能,Ajax获取远程数据源
这个是针对easyUI的下拉菜单使用的,Ajax获取远程数据源 HTML 页面 <input id="uname" name="uname" class= ...
- 2019牛客暑期多校训练营(第九场)H Cutting Bamboos(主席树+二分)
题意:n个竹子,有高度,q次询问,询问之间是独立的,每次查询输入l,r,x,y代表砍区间[l,r]]内的竹子砍y次,最后一次要砍成0,每次砍掉的总长度相同,问第x次砍的高度是多少. 既然每次要求砍掉的 ...
- thinkphp 级联菜单实现
养殖场->栋舍级联菜单 //获取默认养殖场和栋舍信息 public function sbjr(){ $yzc_model=M("Yzc"); $list = $yzc_mo ...
- MySql使用mysqldump 导入与导出方法总结
导出数据库数据:首先打开cmd进入MySQL的bin文件夹下 1.导出education数据库里面的users表的表数据和表结构(下面以users表为例) mysqldump -u[用户名] -h[i ...