对每个系统/网络管理员来说,每天监测Linux系统性能是一项非常艰巨的任务。在IT业从事5年的Linux系统管理员后,我发现监控和保持系统正常运行真不是件容易的事,为此,我总结了8个非常实用的命令行工具给Linux/Unix系统管理员。这些命令支持所有的Linux系统,不仅可以用于监控系统,还可以发现导致性能问题的原因所在。下面提供的8个命令足够你选择其中一个用于你的场景中。
1.TOP——Linux进程监控
Linux的top命令是一个性能监视程序,许多Linux系统管理员经常使用它来监测系统性能,top命令会把所有正在运行的实时进程用列表的形式显示出来并且会定时更新。它会显示CPU使用量、内存使用量、交换内存、缓存大小、缓冲区大小、流程PID、用户、命令等。它也显示正在运行的高内存进程和CPU利用率。系统管理员使用top进行监控是非常有用的,并且可以帮助管理员在必要时采取正确的措施。下面让我们来看看top命令的实际使用效果吧!
# top
TOP命令更多使用示例,可以阅读:top命令在Linux上的12个使用案例
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
关于vmstat命令更多使用示例,请阅读:vmstat在Linux中的6个使用案例
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
更多lsof使用说明请阅读:lsof命令在Linux中的10个使用案例
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
更多tcpdump使用案例,请阅读:tcpdump命令在Linux系统中的12个使用案例
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
更多netstat使用案例,请阅读:netstat在Linux上的20个使用案例
6.HTOP——Linux进程监测
Htop是一个更先进的交互性和实时性的Linux进程监控工具。这个命令与top命令非常相似,但它的功能更加丰富,如友好的用户界面进程管理、快捷键、垂直和水平视图进程等。Htop是一个第三方插件工具,你需要使用YUM软件包管理工具在Linux系统上安装才可以使用。
HTOP安装说明:在Linux中安装HTOP(Linux进程监测)
7.lotop——监控Linux磁盘I/O
Lotop与top命令和Htop程序很相似,但它具有统计功能,实时监测和显示磁盘I/O。这个工具对精确进程和发现高使用量的读/写进程非常有用的。
Loptop安装使用说明:在Linux中安装loptop
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