对于每一个系统管理员或网络管理员每天监视或调试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
7,Iotop -- Monitor Linux Disk I/O
Iotop 也和top,htop命令相似, 但是它能监视和显示实时的磁盘I/O信息和进程信息。这个工具更有用对于查找而外的进程和高使用磁盘读写进程。
# 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校验和错误,界面活动的信息等。
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 自己的用户界面。
想要了解Monit的更多的命令请参考Linux Process Monitoring with Monit 。
12,NetHogs –- Monitor Per Process Network Bandwidth
NetHogs is 是一个类似于top命令的开源的更好的更小的程序,它能够监视系统上的任何一个活动网络进程。它也能够记录实时网络流量带宽使用的每个程序或应用程序。
想要了解该命令的更多用法请参考Monitor Linux Network Bandwidth Using NetHogs 。
13,iftop -- Network Bandwidth Monitoring
iftop 是另一个基于终端的免费开源的系统监控实用工具。它通过系统连接的网络接口来显示频繁更新的网络(源主机到目的主机)带宽利用率。 iftop 被用作监视网络使用率,而‘top‘则被用来监视cpu的使用率。 iftop工具被用来监视被选择的网络接口并且显示两个主机之间的网络带宽使用情况。具体用法如下:
该命令的更多使用方法请参考iftop – Monitor Network Bandwidth Utilization 。
14,Monitorix -- System and Network Monitoring
Monitorix is 是一个免费的轻量级的实用工具,它主要被设计用来运行和监视系统和网络资源尽可能多的运用在Linux/Unix服务器上。它有一个内置的web服务器能够定期的收集系统和网络的信息并且通过图像显示它们。 它监视 system load average and usage, memory allocation(内存分配), disk driver health(磁盘驱动的健康状态), system services(系统服务), network ports(网络端口), mail statistics (Sendmail, Postfix, Dovecot, etc)邮件统计, MySQL statistics (mysql统计)等等. 它旨在监控系统整体性能和有助于检测失败,瓶颈,异常活动等。
了解该命令的更多使用方法请参考: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 使用漂亮的图形界面监控网络流量. 它显示了发送和接收的网络流量使用率在每小时,每周,每月的统计报告中。
该命令的更多用法参考: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的文件中。
更多命令请参考: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 等等。
更多命令参考: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