对于每一个系统管理员或网络管理员每天监视或调试linux系统的性能问题是一件非常困难的事,在it行业作为一个linux管理员五年之后,我开始知道监视和保持系统启动和运行有多么的困难。由于这个原因,我们编写了20条常用的命令行工具,希望对每一个linux系统管理员有用。这些命令是可利用的在所有类型的linux之下并且对监视和发现性能的实际原因是很有用的。这些列表的命令是足够的对于你选择适合你的任何一个监控场景。

1,top ---linux process monitoring

top 命令是一个性能监视程序,通常被许多系统管理员频繁使用监视linux性能并且能够使用在不同的类型的linux之下。top命令用于显示所有运行和活跃的实时进程并定期更新它。它显示了cpu使用率,内存使用率,交换内存,缓存大小,缓冲区大小,进程pid,用户,命令等等。它也展示了运行进程的高cpu利用率和内存利用率。top命令对系统管理员监视和在需要的时候采取正确的行动是非常的重要。下面让我们看看top命令。

#top

了解top的更多带参数的命令在shell中输入“man top”。

2,VmStat -- Virtual Memory Statistic

VmStat命令用来显示虚拟内存内核线程磁盘系统进程输入输出块中断活动的cpu 等等.默认的VmStat命令是不能直接被直接使用的,在linux系统下你必须安装一个名叫sysstat的包,这个包包含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

了解VmStat的更多命令请在shell中输入“man vmstat”。

3, Lsof – List Open Files

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  了解更多的Lsof命令请直接打开shell输入“man lsof”

4,Tcpdump -- Network Packet Analyzer

Tcpdump 是一个被广泛使用的命令行工具,network packet analyzer(网络包分析)packets sniffer(包嗅探) 命令 被用来 capture(捕获) or filter(过滤) 接受或传输在连接网络上的接口上的 TCP/IP 包,它也提供一个选项来保存捕获的包在一个文件中之后进行分析。 tcpdump 也是有用的在分布的不同类型的linux中。tcpdump的使用如下。

# 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 -- Network Statistics

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

netstat 的更多使用方法见“man netstat”。

6,Htop – Linux Process Monitoring

Htop 是一个更先进的交互和实时进程监控工具。这和linux的top命令更相似但是Htop有更丰富的界面就像用户友好的界面管理进程,快捷键,水平和垂直的视图浏览进程等等。Htop是一个三部分的工具默认情况下没有包含。你必须安装它使用YUM包管理工具。

# htop

20个linux命令行工具监视性能_20个linux命令行工具监视性能

安装htop。

7,Iotop -- Monitor Linux Disk I/O

Iotop 也和top,htop命令相似, 但是它能监视和显示实时的磁盘I/O信息和进程信息。这个工具更有用对于查找而外的进程和高使用磁盘读写进程。

# iotop

20个linux命令行工具监视性能_20个linux命令行工具监视性能_02

安装iotop。

8,Iostat – Input/Output Statistics

IoStat 是一个简单的收集和显示输入输出存储设备的统计信息的工具。这个工具被用来追This to踪存储设备性能问题包括 devices(设备)local disks(本地磁盘)remote disks(远程磁盘) such as NFS(网络存储文件)

# iostat

Linux 2.6.18-238.9.1.el5          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 – Real Time IP LAN Monitoring

IPTraf 是一个开源的基于console的实时网络监视工具,它收集了不同种类的信息例如通过网络的ip交通监视。包括tcp flag信息,icmp信息,tcp/udp交通故障,tcp连接包和字节统计。它还收集接口的统计TCP、UDP、IP、ICMP、非IP,IP校验和错误,界面活动的信息等。

20个linux命令行工具监视性能_20个linux命令行工具监视性能_03


10,Psacct or Acct -- Monitor User Activity

psacct or acct tools 是非常的有用对于监视每一个用户的活动, 这两个守护进程在后台运行并保持密切关注系统上的每个用户的整体活动有什么资源被消耗。

这些工具是非常有用的对系统管理员追踪每个用户的活动例如用户正在做什么,他们发布了什么命令,他们在使用多少资源,他们使用系统多久了等等。

How to Monitor User Activity with psacct or acct Tools

11,Monit –- Linux Process and Services Monitoring

Monit 是一个免费开源并且基于web的进程监督实用程序,自动监控和管理系统进程,应用程序,文件,目录,权限,校验和和文件系统。

它监视的服务有 Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH 等等。系统状态能被浏览通过命令行或者使用Monit 自己的用户界面。

20个linux命令行工具监视性能_20个linux命令行工具监视性能_04

想要了解Monit的更多的命令请参考Linux Process Monitoring with Monit 

12,NetHogs –- Monitor Per Process Network Bandwidth

NetHogs is 是一个类似于top命令的开源的更好的更小的程序,它能够监视系统上的任何一个活动网络进程。它也能够记录实时网络流量带宽使用的每个程序或应用程序。

20个linux命令行工具监视性能_20个linux命令行工具监视性能_05

想要了解该命令的更多用法请参考Monitor Linux Network Bandwidth Using NetHogs 。

13,iftop -- Network Bandwidth Monitoring

iftop 是另一个基于终端的免费开源的系统监控实用工具。它通过系统连接的网络接口来显示频繁更新的网络(源主机到目的主机)带宽利用率。 iftop 被用作监视网络使用率,而‘top‘则被用来监视cpu的使用率。 iftop工具被用来监视被选择的网络接口并且显示两个主机之间的网络带宽使用情况。具体用法如下

20个linux命令行工具监视性能_20个linux命令行工具监视性能_06

该命令的更多使用方法请参考iftop – Monitor Network Bandwidth Utilization 。

14,Monitorix -- System and Network Monitoring

Monitorix is 是一个免费的轻量级的实用工具,它主要被设计用来运行和监视系统和网络资源尽可能多的运用在Linux/Unix服务器上。它有一个内置的web服务器能够定期的收集系统和网络的信息并且通过图像显示它们。 它监视 system load average and usagememory allocation(内存分配)disk driver health(磁盘驱动的健康状态)system services(系统服务)network ports(网络端口)mail statistics (Sendmail,PostfixDovecot, etc)邮件统计, MySQL statistics (mysql统计)等等. 它旨在监控系统整体性能和有助于检测失败,瓶颈,异常活动等.

20个linux命令行工具监视性能_20个linux命令行工具监视性能_07

了解该命令的更多使用方法请参考:Monitorix a System and Network Monitoring Tool for Linux 。

15,Arpwatch -- Ethernet Activity Monitor

Arpwatch is 是一种被设计用来监视以太网的地址解析(MAC and IP address changes)的程序。 它持续保持监视以太网流量和产生一个IP和MAC地址对变化的以及网络上的时间戳的日志。当有一个地址对发生变化时它通过发送一个电子邮件界面告示管理员。它是非常的有用对于检查网络中ARP 攻击

# arpwatch -i eth0

# tail -f /var/log/messageseth0

Apr 15 12:45:17 tecmint arpwatch: new station 172.16.16.64 d0:67:e5:c:9:67  Apr 15 12:45:19 tecmint arpwatch: new station 172.16.25.86 0:d0:b7:23:72:45  Apr 15 12:45:19 tecmint arpwatch: new station 172.16.25.86 0:d0:b7:23:72:45  Apr 15 12:45:19 tecmint arpwatch: new station 172.16.25.86 0:d0:b7:23:72:45  Apr 15 12:45:19 tecmint arpwatch: new station 172.16.25.86 0:d0:b7:23:72:45

想要了解更多该命令的使用方法请参考:Arpwatch to Monitor Ethernet Activity

16,Suricata --Network Security Monitoring

Suricata 是一个高性能的开源网络安全和入侵检测和预防监测系统, FreeBSD 和Windows.它由一个非盈利基金会OISF设计和使用。

# suricata -c /etc/suricata/suricata.yaml -i eth0

23/7/2013 -- 12:22:45 -  - This is Suricata version 1.4.4 RELEASE  23/7/2013 -- 12:22:45 -  - CPUs/cores online: 2  23/7/2013 -- 12:22:45 -  - Found an MTU of 1500 for 'eth0'  23/7/2013 -- 12:22:45 -  - allocated 2097152 bytes of memory for the defrag hash... 65536 buckets of size 32  23/7/2013 -- 12:22:45 -  - preallocated 65535 defrag trackers of size 104  23/7/2013 -- 12:22:45 -  - defrag memory usage: 8912792 bytes, maximum: 33554432  23/7/2013 -- 12:22:45 -  - AutoFP mode using default "Active Packets" flow load balancer  23/7/2013 -- 12:22:45 -  - preallocated 1024 packets. Total memory 3170304  23/7/2013 -- 12:22:45 -  - allocated 131072 bytes of memory for the host hash... 4096 buckets of size 32  23/7/2013 -- 12:22:45 -  - preallocated 1000 hosts of size 76  23/7/2013 -- 12:22:45 -  - host memory usage: 207072 bytes, maximum: 16777216  23/7/2013 -- 12:22:45 -  - allocated 2097152 bytes of memory for the flow hash... 65536 buckets of size 32  23/7/2013 -- 12:22:45 -  - preallocated 10000 flows of size 176  23/7/2013 -- 12:22:45 -  - flow memory usage: 3857152 bytes, maximum: 33554432  23/7/2013 -- 12:22:45 -  - IP reputation disabled  23/7/2013 -- 12:22:45 -  - using magic-file /usr/share/file/magic

了解该命令的更多使用方法请参考:Suricata – A Network Intrusion Detection and Prevention System

17,VnStat PHP – Monitoring Network Bandwidth

VnStat PHP 一个基于web的前端应用程序最受欢迎的网络工具叫 “vnstat“. VnStat PHP 使用漂亮的图形界面监控网络流量. 它显示了发送和接收的网络流量使用率在每小时,每周,每月的统计报告中。

20个linux命令行工具监视性能_20个linux命令行工具监视性能_08

该命令的更多用法参考:VnStat PHP – Monitoring Network Bandwidth 。

18,Nagios -- Network/Server Monitoring

Nagios是一个领先的开源强大的监控系统,让网络/系统管理员识别并解决服务器相关问题在影响主要业务流程之前。通过Nagios系统, 管理员能够远程监控系统,交换机,路由器和打印机通过单一的窗口。 它显示关键的警告和指示如果运行错误在你的网络/服务器,它能够间接地帮助你开始补救之前发生的错误。

具体使用方法请参考:: Install Nagios Monitoring System to Monitor Remote Linux/Windows Hosts 

19, Nmon --Monitor Linux Performance

Nmon (stands for Nigel’s performance Monitor) 代表奈杰尔性能监视器工具, 它被用来见识Linux资源例如 CPU, Memory, Disk Usage, Network, Top processes, NFS, Kernel 等等. 这个工具带有两种模式: Online Mode(在线模式) 和 Capture(捕获模式) Mode.

在线模式,被用来实时监控。抓包模式,被用来存储那个包到格式为csv的文件中。

20个linux命令行工具监视性能_20个linux命令行工具监视性能_09

更多命令请参考:Install Nmon (Performance Monitoring) Tool in Linux 。

20,Collectl -- All-in-One Performance Monitoring Tool

Collectl is也是另外一个强大并且基于的丰富的命令行界面的实用工具。它能用来搜集linux的系统信息例如CPU usage(cpu使用率), memory(内存), network(网络), inodes(节点), processes(进程), nfs, tcp, sockets 等等.

20个linux命令行工具监视性能_20个linux命令行工具监视性能_10

更多命令参考:Install Collectl (All-in-One Performance Monitoring) Tool in Linux

英文链接:20 Command Line Tools to Monitor Linux Performance

译文链接:http://www.cnblogs.com/Hackerman/p/3930505.html#top