天天看点

linux 监控

本文总结了8个非常实用的Linux命令行性能监测工具,这些命令支持所有的Linux系统,不仅可以用于监控系统,还可以发现导致性能问题的原因所在。

    对每个系统/网络管理员来说,每天监测Linux系统性能是一项非常艰巨的任务。在IT业从事5年的Linux系统管理员后,我发现监控和保持系统正常运行真不是件容易的事,为此,我总结了8个非常实用的命令行工具给Linux/Unix系统管理员。这些命令支持所有的Linux系统,不仅可以用于监控系统,还可以发现导致性能问题的原因所在。下面提供的8个命令足够你选择其中一个用于你的场景中

    1.TOP--Linux进程监控

    Linux的top命令是一个性能监视程序,许多Linux系统管理员经常使用它来监测系统性能,top命令会把所有正在运行的实时进程用列表的形式显示出来并且会定时更新。它会显示CPU使用量、内存使用量、交换内存、缓存大小、缓冲区大小、流程PID、用户、命令等。它也显示正在运行的高内存进程和CPU利用率。系统管理员使用top进行监控是非常有用的,并且可以帮助管理员在必要时采取正确的措施。下面让我们来看看top命令的实际使用效果吧!

    # top

    2.VMSTAT--虚拟内存统计

    Linux的vmstat命令用于显示虚拟内存统计,kernerl线程、磁盘、系统进程、I/O模块、中断、CPU活动等。默认情况下,需要在Linux系统上安装一个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可以找出哪些进程在使用,此命令最常用的格式如下:

    # 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进程监控工具。这个命令与top命令非常相似,但它的功能更加丰富,如友好的用户界面进程管理、快捷键、垂直和水平视图进程等。Htop是一个第三方插件工具,你需要使用YUM软件包管理工具在Linux系统上安装才可以使用。

    7.lotop--监控Linux磁盘I/O

    Lotop与top命令和Htop程序很相似,但它具有统计功能,实时监测和显示磁盘I/O.这个工具对精确进程和发现高使用量的读/写进程非常有用的。

    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

继续阅读