iostat 命令详细地显示了存储子系统方面的情况。你通常用iostat来监控存储子系统总 体上运行状况如何,并且在用户注意到服务器运行缓慢之前提早发现输入/输出缓慢的问题 。相信我,你应该在用户发现这些问题之前先发现这些问题!
meminfo和free
meminfo为你详细显示了内存方面的情况。你通常可以使用另一个程序,比如cat和grep ,来访问meminfo的信息。比如说,cat /proc/meminfo为你详细显示了服务器的内存在任何 一个时间的使用情况。
如果想快速了解内存的概要信息,可以使用free命令。简而言之,free为你提供了概要 信息;meminfo为你提供了详细信息。
mpsta
mpstat命令可以报告多处理器服务器上每个可用处理器的活动情况。如今,由于多核处 理器,这个命令适用于几乎所有服务器。mpstat还可以报告所有服务器上的处理器的平均活 动情况。它让你能够按照系统或按照处理器来显示总的处理器统计信息。这个概要信息可以 在潜在的应用程序问题惹毛用户之前提醒你注意。
netstat
netstat与ps一样,也是Linux管理员每天都使用的Linux工具。它显示了与网络有关的大 量信息,比如套接口使用情况、路由、接口、协议、网络统计信息及更多信息。最常用的一 些选项如下:
-a 显示套接口的所有信息
-r 显示路由信息
-i 显示网络接口的统计信息
-s 显示网络协议的统计信息
nmon
nmon是Nigel's Monitor的简称,这款广受欢迎的开源工具用来监控Linux系统的性能。 nmon可以监控多个子系统的性能信息,比如处理器使用率、内存使用率、运行队列的信息、 磁盘输入/输出统计信息、网络输入/输出统计信息、内存分页活动和进程衡量指标。然后, 你可以通过curses"图形化"界面,查看 nmon的实时系统衡量结果。
想运行nmon,你可以从外壳来启动该工具。一旦启动,只要输入单键命令,就可以选择 要监控的子系统。比如说,想获得处理器、内存和磁盘等方面的统计信息,只要分别输入c 、m和d.也可以使用带-f标志的nmon,将性能统计信息保存到CSV文件中,以便日后分析。
就日常的服务器监控而言,我觉得nmon是我的Linux系统管理工具包中最有用的一个程序 。
pmap
pmap命令用来报告服务器的进程所使用的内存量。你可以用这个工具来确定服务器上哪 些进程被分配了内存、这些进程中有谁在大量使用内存。
ps和pstree
ps和pstree这两个命令是Linux系统管理员的两个得力助手。它们都能以列表的形式显示 所有目前在运行的进程。ps可以告诉你服务器的程序在使用多少的内存和处理器时间。 pstree显示的信息比较少,但着重表明了哪些进程是其他进程的子进程。掌握了这些信息, 你就能发现失控的进程,然后用 Linux"不留活口"的kill命令,来终止这些进程。
sar
sar程序好比是系统监控工具领域的瑞士军刀。sar命令实际上由三个程序组成:显示数 据的sar、收集数据的sa1以及保存数据的sa2.一旦安装完毕,sar就能生成详细的概要信息 ,显示处理器使用率、内存分页活动、网络输入/输出和传输方面的统计信息、进程创建活 动以及磁盘设备活动。sar和 nmon的一大区别在于,前者更适合长期监控系统,我觉得nmon 则比较适合帮助我快速查看服务器的运行状况。
strace
strace 经常被认为是程序员的调试工具,但它的功用不仅仅用来调试。它可以截获和记 录进程调用系统的情况。因而,它是一个实用的诊断、教学和调试工具。比如说,你可以使 用strace来查出某个程序在启动时实际上使用哪个配置文件。
不过strace的确有一个缺陷。它在检查某个进程时,该进程的性能会一落千丈。因而, 只有在我已经有极其充分的理由认为某个程序引起问题的情况下,才使用strace.
tcpdump
tcpdump是一个简单而可靠的网络监控实用工具。其基本的协议分析功能让你能够粗略查 看网络上的情况。不过想真正深入分析网络方面的情况,你应该使用Wireshark(下面有介 绍)。
top
top命令显示了活动进程方面的情况。默认情况下,它显示了服务器上运行的最消耗处理 器的任务,而且每5秒钟就刷新一次列表。你还可以按多个标准对进程进行分类,比如PID( 进程ID);年限,最新的列在最前面;时间,按累计时间;以及驻留内存使用情况和自启动 以来一直使用处理器的总时间。我觉得它提供了一种快速而简易的方法,便于查看有没有进 程开始即将失控、带来问题。
uptime
uptime可用来查看某台服务器运行了多久、有多少个用户登录上去。它还显示了服务器 平均负载的概要信息。负载的最佳值是1或更小,这意味着每个进程可以立即访问处理器、 不存在处理器周期丢失的情况。
vmstat
大体上来说,你可以使用vmstat来监控虚拟内存方面的情况。Linux不断使用虚拟内存, 以获得最佳的存储性能。