【2013年4月11日 51CTO外电头条】对每一个系统管理员或网络管理员来说,每天监测和调试Linux系统性能方面的问题其实是难度非常大的一项任务。我在IT行业担任了5年的Linux管理员,逐渐明白了监测系统并确保系统正常运行有多么困难。由于这个原因,我们整理出这份列表,介绍了12个常用的命令行监测工具,它们也许对每一个Linux/Unix系统管理员来说很有用。这些命令在所有版本的Linux环境下都能找到,有助于监测和查找性能问题的实际根源。下面介绍的这些命令非常全面,完全足以让你从中选出适合自身监测环境的一个工具。

专题推荐:Linux监控工具的展览馆

3. Lsof:列出打开的文件

Lsof命令用于许多类似Linux/Unix的系统中,用来显示所有打开的文件和进程。打开的文件包括:磁盘文件、网络套接字、管道、设备和进程。使用这个命令的主要场合之一是,当磁盘无法卸载,显示文件被使用或被打开这个错误信息时。有了这个命令,你很容易查明哪些文件在使用中。这个命令最常见的格式如下:

# lsof


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 -i eth0


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 (servers and established)

Proto  Recv-Q Send-Q Local Address              Foreign Address             State

tcp        0      0 *:mysql                   *:*                         LISTEN

tcp        0      0 *:sunrpc                   *:*                         LISTEN

tcp        0      0 *:realm-rusd                *:*                         LISTEN

tcp        0      0 *:ftp                      *:*                         LISTEN

tcp        0      0 localhost.localdomain:ipp     *:*                         LISTEN

tcp        0      0 localhost.localdomain:smtp    *:*                         LISTEN

tcp        0      0 localhost.localdomain:smtp    localhost.localdomain:42709    TIME_WAIT

tcp        0      0 localhost.localdomain:smtp    localhost.localdomain:42710    TIME_WAIT

tcp        0      0 *:http                     *:*                         LISTEN

tcp        0      0 *:ssh                      *:*                         LISTEN

tcp        0      0 *:https                     *:*                         LISTEN


6. Htop:监测Linux进程

Htop是一款非常先进的交互式实时Linux进程监测工具。它非常类似Linux top命令,但是有一些丰富的功能特性,比如易于使用的界面,可用于管理进程、快捷键、进程的垂直和水平视图以及其他对象。Htop是一个第三方工具,并不包含在Linux系统中,你需要使用YUM程序包管理器工具来安装它。想了解安装方面的更多信息,请参阅本文

# htop

13个超实用的Linux性能监测命令行工具(十)_处理器

Htop命令示例的屏幕截图


7. Iotop:监测Linux磁盘的输入/输出

Iotop也非常类似top命令和Htop程序,但是它有记账功能,可用于监测和显示实时磁盘输入/输出及进程。这个工具非常有用,可用于查找具体的进程以及进程的频繁使用的磁盘读取/写入操作。

# iotop

13个超实用的Linux性能监测命令行工具(十)_网络管理员_02

Iotop命令示例的屏幕截图

8. Iostat:显示输入/输出方面的统计信息

IoStat是款简单的工具,可以收集和显示系统输入/输出存储设备方面的统计信息。这个工具经常用于追查存储设备性能方面的问题,包括设备、本地磁盘和NFS等远程磁盘。

# iostat


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是一个基于控制台的开源实时网络(IP LAN)监测实用工具,面向Linux。它可以收集通过网络传输的众多信息(比如IP流量监测器),包括TCP标记信息、ICMP详细信息、TCP/UDP流量故障、TCP连接数据包以及字节计数。它还可以收集接口方面普通和详细的统计信息,比如TCP、UDP、IP、ICMP、非IP、IP校验和错误以及接口 活动等。

13个超实用的Linux性能监测命令行工具(十)_处理器_03

IP流量监测器


10. psacct或acct:监测用户活动

psacct或acct这两个工具大有用处,可用于监测系统上每个用户的活动。这两个守护程序都在后台运行,监测系统上每个用户的总体活动,还监测它们在使用什么资源。

这些工具对系统管理员们来说大有用处,可用于跟踪每个用户的活动,比如用户在从事什么操作,他们发出了什么命令,他们使用了多少资源,以及他们在系统上处于活动状态已有多久,等等。

11. Monit:监测Linux进程和服务

Monit是一款免费的开源、基于Web的进程监测实用工具,可以自动监测和管理系统进程、程序、文件、目录、许可权限、校验和以及文件系统。

它可以监测Apache、MySQL、Mail、FTP、ProFTP、Nginx和SSH等服务。可以从命令行或使用其自己的Web界面来查看系统状态。

13个超实用的Linux性能监测命令行工具(十)_处理器_04

Monit Linux进程监测

12. NetHogs:监测每个进程的网络带宽

NetHogs是一款优秀、小巧的开源程序(类似Linux top命令),可密切监测系统上每个进程的网络活动。它还密切跟踪每个程序或应用软件所使用的实时网络流量带宽。

13个超实用的Linux性能监测命令行工具(十)_IT行业_05

NetHogs Linux带宽监测

13. iftop:监测网络带宽

iftop是另一款基于终端的免费开源系统监测实用工具,可显示一份经常更新的列表,该列表显示了通过系统上网络接口的网络带宽使用情况。iftop通常用于监测网络使用情况,就像top通常用于监测处理器使用情况。iftop是属于top家族的工具,可监测某个所选择的接口,并显示两个主机之间目前的带宽使用情况。

13个超实用的Linux性能监测命令行工具(十)_系统管理员_06

Iftop:网络带宽监测

我们想知道各位使用哪种监测程序来监测Linux服务器的性能?要是我们遗漏了任何你希望我们补充进来的重要工具,请留言告知我们,欢迎分享。

原文链接:http://www.tecmint.com/command-line-tools-to-monitor-linux-performance/

【编辑推荐】