20个命令行工具监控 Linux 系统性能

对于每个系统管理员或网络管理员来说,每天要[监控]和调试
L[inux ]年
L[inux ]个命令行系统监视工具。这些命令可以在所有版本的
L[inux ]和查找系统性能的实际原因。这些监控命令足够你选择适合你的监控场景。

[1. top ]系统进程监控

[top ]使用率过高的正在运行的进程。当我们对
L[inux ]命令的实际操作。

# top

1{width=”630”
height=”430”}
\
[]

[2. vmstat ]— 虚拟内存统计

[vmstat ]的程序包。命令格式常用用法如下:

# vmstatprocs -----------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 ]命令对于很多
L[inux/Unix ]系统都可以使用,主要以列表的形式显示打开的文件和进程。

打开的文件主要包括磁盘文件、网络套接字、管道、设备和进程。使用这个命令的主要原因是一个一个盘不能卸载并且显示文件正在使用或者打开的错误信息。这个命令很容易看出哪些文件正在使用。这个命令最常用的格式:

# lsofCOMMAND     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 ]几乎在所有的
L[inux ]版本中都是可用的。

# tcpdump -i eth0tcpdump: 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 ]是一个第三方工具并不包括在
L[inux ]包管理工具进行安装。

# htop

6{width=”600”
height=”363”}
\
[]

[7. iotop ]

[iotop ]写过程是非常有用的。

# iotop

[]

[8. iostat ]输出统计

[iostat ]远程磁盘。

# iostatLinux 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 是一个基于开源的
L[inux ]校验错误,界面活性等一般信息和详细信息的接口统计数据。

9{width=”600”
height=”377”}
\
[]

[10. Psacct ]— 监视用户活动

[Psacct ]是用于监测每个用户对系统的活跃状态的一个非常有用的工具。在后台有两个守护进程在运行,一个是密切关注系统上每个用户的整体活动,另一个进程关注有哪些资源被它们消耗。

[ ]这个工具对于系统管理员是非常有用的去跟踪每个用户的活动,可以知道用户正在做什么,发出了什么样的命令,占用了多少资源,多长时间活跃在系统上。

[11. Monit ]— 程序和服务监测

这是一个免费的开源的基于 [web ] 等等。系统状态是可以从命令行或者自己的网络接口来查看。

11{width=”600”
height=”450”}
\
[]

[12. NetHogs ]— 监视每个进程的网络带宽

[NetHogs ]是一个开源的漂亮的小程序(类似于
L[inux ]命令),在您的系统上保持每个进程的网络活动状态。它也保持了一个程序或者应用实时的网络流量带宽使用情况。

12{width=”600”
height=”450”}
\
[]

[13. iftop ]— 网络带宽监控

[iftop ]监视一个选定的接口并且显示两台主机之间当前宽带的使用情况。

13{width=”601”
height=”387”}
\
[]

[14. Monitorix ]— 系统和网络监控

[Monitorix ]是一个尽可能多的在
L[inux/Unix ]上一个轻量级监控工具,主要设计是监控正在运行的系统和网络资源。它有一个内置的 [HTTP
web ]数据库等等更多的服务。它的主要目的是监控整个系统的性能,并且有助于监测故障、瓶颈、异常活动等状况。

14{width=”863”
height=”655”}

[15. Arpwatch ]— 以太网活动监控器

[Arpwatch]是一种用来监视
L[inux ]地址对发生变化的时候,它会发送电子邮件通知管理员。

并且它在检测 [ARP ]攻击是非常有用的。

[16. Suricata ]— 网络安全监控

[Suricata ]([Open
Information Security
Foundation])拥有的。

[17. VnStat PHP ]— 监测网络带宽

[VnStat
PHP ]”。 [VnStat
PHP ]使用了很好的图形模式监控网络流量的使用情况。它显示了每时、每天、每月的总结报告中的网络流量使用情况。

18. Nagios — 网络/服务器监控

[Nagios ]可以监控远程
L[inux]、开关、单窗口的路由器和打印机。它能显示你的网络和服务器关键的告警,有利于在错误反生之前帮助你解决问题。

[19. Nmon — ]系统性能

[Nmon]格式后的处理。

[19{width=”681”
height=”421”}
]

[20. Collectl ]— 一体化性能检测工具

[Collectl ]套接等等。

20{width=”678”
height=”449”}

我们想知道你使用什么样的监控程序来监控你的服务器性能?如果我们错过你想要的任何工具,请通过评论告知我们,并且不要忘记分享他。

坚持原创技术分享,您的支持将鼓励我继续创作!