对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作。在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并执行是多么的不easy。基于此原因。我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每一个Linux/Unix 系统管理员的工作。这些命令行工具能够在各种Linux系统下使用。能够用于监控和查找产生性能问题的解决办法。这个命令行工具列表提供了足够的工具。您能够挑选适用于您的监控场景的工具。

1.Top-Linux进程监控

Linux下的Top命令是一个性能监控程序,很多系统管理员经常常使用它来监控Linux性能,在很多Linux或者类Unix操作系统里都有这个命令。Top命令用于按一定的顺序显示全部正在执行并且处于活动状态的实时进程,并且会定期更新显示结果。这条命令显示了CPU的使用率、内存使用率、交换内存使用大小、快速缓存使用大小、缓冲区使用大小,进程PID、所使用命令以及其它。

它还能够显示正在执行进程的内存和CPU占用多的情况。

对系统管理员来说,top命令式是一个很实用的,它可用于监控系统并在须要的时候採取正确的处理动作。让我们看看实际中的top命令。

# top


 ​显示器 Linux 性能 18 (一个命令行工具传递)_网络带宽​ 

Top命令举例 

有关Top命令很多其它的样例。请阅读:​​Linux下12个使用Top命令的样例​​。

2. VmStat – 虚拟内存统计

Linux 的 VmStat 命令用于显示虚拟内存、内核线程、磁盘、系统进程、I/O 块、中断、CPU 活动 等的统计信息。缺省情况下, vmstat 命令在 Linux 系统下不可用。你须要安装一个包括了 vmstat 程序的 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 样例。请阅读 : ​​6 Linux 下的 Vmstat 命令实例​

3.Lsof-列出打开的文件

在很多Linux或者类Unix系统里都有lsof命令,它经常使用于以列表的形式显示全部打开的文件和进程。打开的文件包含磁盘文件、网络套接字、管道、设备和进程。使用这条命令的主要情形之中的一个就是在无法挂载磁盘和显示正在使用或者打开某个文件的错误信息的时候。使用这条命令,你能够非常easy地看到正在使用哪个文件。

这条命令最经常使用的格式例如以下:

# 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命令的使用方法和样例的很多其它信息。请參考: ​​Linux下10个使用lsof命令的样例​​。

4.Tcpdump-网络包分析器

Tcpdump是最广泛使用的网络包分析器或者包监控程序之中的一个,它用于捕捉或者过滤网络上指定接口上接收或者传输的TCP/IP包。它另一个选项用于把捕捉到的包保存到文件中,以便以后进行分析。在差点儿全部基本的Linux公布里,tcpdump都能够使用。

# tcpdump -i eth0tcpdump: 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使用方法的信息,请參阅: ​​Linux下12个使用Tcpdump命令的样例。​

5.Netstat-网络状态统计

Netstat是一个用于监控进出网络的包和网络接口统计的命令行工具。它是一个很实用的工具。系统管理员能够用来监控网络性能,定位并解决网络相关问题。

# netstat -a | moreActive 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很多其它的样例,请參阅: ​​Linux下20个使用Netstat命令的样例。​

6. Htop – Linux进程监控

Htop 是一个很高级的交互式的实时linux进程监控工具。 它和top命令十分相似。可是它具有更丰富的特性。比如用户能够友好地管理进程。快捷键,垂直和水平方式显示进程等等。

Htop是一个第三方工具,它不包括在linux系统中。你须要使用YUM包管理工具去安装它。 关于安装的很多其它信息,请阅读下文.

# htop


显示器 Linux 性能 18 (一个命令行工具传递)_top命令_02

Htop 命令演示样例截图

对于Htop的安装,请读 : ​​在Linux安装Htop(Linux进程监控)​

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

Iotop命令相同也很类似于top命令和Htop程序,只是它具有监控并显示实时磁盘I/O和进程的统计功能。在查找详细进程和大量使用磁盘读写进程的时候,这个工具就很实用。

# iotop


显示器 Linux 性能 18 (一个命令行工具传递)_ios_03

 Iotop命令举例的截图  有关怎样安装和使用iotop的信息,请阅读: ​​在Linux下安装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


有关iostat使用方法和举例的很多其它信息,请訪问: ​​Linux下6个使用iostat命令的样例​​。

9.IPTraf-实时局域网IP监控

IPTraf是一个在Linux控制台执行的、开放源码的实时网络(局域网)监控应用。它採集了大量信息,比方通过网络的IP流量监控,包含TCP标记、ICMP具体信息、TCP/UDP流量分离、TCP连接包和字节数。同一时候还採集有关接口状态的常见信息和具体信息:TCP、UDP、IP、ICMP、非IP,IP校验和错误。接口活动等。

显示器 Linux 性能 18 (一个命令行工具传递)_top命令_04

IP流量监控 

有关IPTraf工具使用方法以及其它很多其它信息,请訪问: ​​IPTraf网络监控工具​​。

10. psacct 或者 acct - 监视用户活动

psacct或者acct工具用于监视系统里每一个用户的活动状况。

这两个服务进程执行在后台,它们对系统上执行的每一个用户的全部活动进行近距离监视,同一时候还监视这些活动所使用的资源情况。

系统管理员能够使用这两个工具跟踪每一个用户的活动,比方用户正在做什么。他们提交了那些命令。他们使用了多少资源,他们在系统上持续了多长时间等等。

有关这些命令的安装和使用方法举例信息。请參阅文章:​​使用psacct或者acct监视用户活动​​。

11.Monit - Linux进程和服务监控工具

Monit是一个免费的开源软件,也是一个基于网络的进程监控工具。它能自己主动监控和管理系统进程,程序。文件。目录。权限,总和验证码和文件系统。

这个软件能监控像Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH这种服务。你能够通过命令行或者这个软件提供的网络借口来查看系统状态。

显示器 Linux 性能 18 (一个命令行工具传递)_ios_05

Monit Linux系统监控

很多其它内容请參阅:​​用Monit监控Linux进程​

12.NetHogs-监视每一个进程使用的网络带宽

NetHogs是一个开放源源码的非常小程序(与Linux下的top命令非常相似)。它密切监视着系统上每一个进程的网络活动。同一时候还追踪着每一个程序或者应用所使用的实时网络带宽。

显示器 Linux 性能 18 (一个命令行工具传递)_top命令_06

NetHogs:Linux下的带宽监视 

很多其它信息请參阅: ​​使用NetHogs监视Linux的网络带宽使用状况。​

13.iftop-监视网络带宽

iftop是还有一个在控制台执行的开放源码系统监控应用,它显示了系统上通过网络接口的应用网络带宽使用(源主机或者目的主机)的列表,这个列表定期更新。iftop用于监视网络的使用情况,而'top'用于监视CPU的使用情况。

iftop是'top'工具系列中的一员,它用于监视所选接口。并显示两个主机间当前网络带宽的使用情况。

显示器 Linux 性能 18 (一个命令行工具传递)_网络带宽_07

iftop-监视网络带宽

很多其它信息请參阅:​​iftop-监视网络带宽的使用情况​​。

14 Monitorix-系统和网络监控

Monitorix 是一个免费的轻量级应用工具,它的设计初衷是执行和监控Linux/Unixserver系统和资源等。它有一个HTTP 网络server,这个server有规律的收集系统和网络的信息并以图形化的形式展示出来。它监控系统的平均负载和使用。内存分配、磁盘健康状况、系统服务、网络port、邮件统计(Sendmail,Postfix,Dovecot等)。MySQL统计,等等。

它就是用来监控系统的整体性能。帮助发现失误、瓶颈和异常活动的。

显示器 Linux 性能 18 (一个命令行工具传递)_linux_08

15. Arpwatch – 以太网活动监视器

Arpwatch被设计用来监控Linux上的以太网地址解析 (MAC和IP地址的变化)。

他在一段时间内持续监控以太网活动并输出IP和MAC地址配对变动的日志。它还能够向管理员发送邮件通知,对地址配对的增改发出警告。

这对于检測网络上的ARP攻击非常实用。

 

很多其它信息请參阅 : ​​Arpwatch to Monitor Ethernet Activity​

16. Suricata – 网络安全监控

Suricata 是一个开源的高性能网络安全、入侵检測和反监測工具。能够执行Linux、FreeBSD和Windows上。

非营利组织OISF (Open Information Security Foundation)开发并拥有其版权。

很多其它信息请參阅 : ​​Suricata – A Network Intrusion Detection and Prevention System​

17. VnStat PHP – 网络流量监控

VnStat PHP 是流行网络工具"vnstat"的基于web的前端呈现。

VnStat PHP 将网络使用情况呈如今美丽的图形界面中。他能够显示以小时、日、月计的上传和下载流量并输出总结报告。

很多其它信息请參阅 : ​​VnStat PHP – Monitoring Network Bandwidth​

18. Nagios – 网络/server监控

Nagios是率先而强大的开源监控系统。他能够让网络/系统管理员在问题影响到正常的业务之前发现并解决它们。有了Nagios系统,管理员能够在单个窗体内远程检測Linux、Windows、开关、路由器和打印机。它能够危急警告并指出系统/server是否有异常,这能够间接帮助你在问题发生之前採取抢救措施。

很多其它信息请參阅 : ​​Install Nagios Monitoring System to Monitor Remote Linux/Windows Hosts​

我们想知道:你在用什么监控程序来监控Linuxserver的性能呢?假设我们在上面错过了你觉得重要的工具,请在评论中告诉我们。不要忘了分享它!

版权声明:本文博客原创文章,博客,未经同意,不得转载。