Chinaunix首页 | 论坛 | 博客
  • 博客访问: 88294
  • 博文数量: 18
  • 博客积分: 246
  • 博客等级: 二等列兵
  • 技术积分: 235
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-14 14:12
文章分类

全部博文(18)

文章存档

2013年(10)

2012年(6)

2011年(2)

我的朋友

分类: LINUX

2013-04-11 14:56:57

13个超实用的Linux性能监测命令行工具

 

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

1. Top:监测Linux进程

命令是一个程序,它经常被许多系统管理员用来监测,在许多类似Linux/Unix的操作系统环境下都能找到。可用于显示所有运行中和活动的实时进程(按顺序排列),并且定期更新。它可显示处理器使用情况、内存使用情况、交换内存、缓存大小、缓冲器大小、进程标识符(PID)、用户、命令及更多的信息。它还显示了某个运行中进程大量使用内存和处理器的情况。Top命令对系统管理员大有用处,可用来监测,需要时还可采取正确的行动。不妨看看Top命令的实际使用情况。

# top

Top命令示例

2. VmStat:显示虚拟内存方面的统计信息

Linux VmStat命令用来显示虚拟内存、内核线程、磁盘、系统进程、输入/输出块、中断、处理器活动及更多方面的统计信息。默认情况下,vmstat命令并不出现在环境下,你需要安装一个名为sysstat的程序包,该程序包里面含有一个vmstat程序。命令格式通常这样使用:

# vmstat

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

# 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:网络数据包分析器

是使用最广泛的命令行网络数据包分析器或数据包嗅探程序之一,用于捕捉或过滤在网络上通过某个接口接收或传输的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 -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 top命令,但是有一些丰富的功能特性,比如易于使用的界面,可用于管理进程、快捷键、进程的垂直和水平视图以及其他对象。Htop是一个第三方工具,并不包含在Linux系统中,你需要使用YUM程序包管理器工具来安装它。想了解安装方面的更多信息,请参阅

# htop

说明: http://images.51cto.com/files/uploadimg/20130411/0930371.jpg

Htop命令示例的屏幕截图

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

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

# iotop

说明: http://images.51cto.com/files/uploadimg/20130411/0930372.jpg

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连接数据包以及字节计数。它还可以收集接口方面普通和详细的统计信息,比如TCPUDPIPICMP、非IPIP校验和错误以及接口活动等。

说明: http://images.51cto.com/files/uploadimg/20130411/0930373.jpg

IP流量监测器

10. psacctacct:监测用户活动

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

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

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

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

它可以监测ApacheMySQLMailFTPProFTPNginxSSH等服务。可以从命令行或使用其自己的Web界面来查看系统状态。

说明: http://images.51cto.com/files/uploadimg/20130411/0930374.jpg

Monit Linux进程监测

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

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

说明: http://images.51cto.com/files/uploadimg/20130411/0930375.jpg

NetHogs Linux带宽监测

13. iftop:监测网络带宽

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

说明: http://images.51cto.com/files/uploadimg/20130411/0930376.jpg

Iftop:网络带宽监测

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

 

阅读(805) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~