www.hj8828.com 3

【www.hj8828.com】你需要知道的16个Linux服务器监控命令

想不想知道你的服务器到底在干什么?那么你要知道本文介绍的这些基本命令。一旦你熟悉掌握了这些命令,就为成为专业的
Linux系统管理员打下了基础。

如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个
专业的 Linux 系统管理员。

有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux
就有一个非常棒而且专业的工具 YaST,KDE 的 KDE System Guard
同样很出色。当然,要使用这些工具,你必须在服务器跟前进行操作,而且这些
GUI 的程序占用了很多系统资源,所以说,尽管 GUI
用来做基本的服务器健康状态监测挺好,但如果你想知道真正发生什么,请关掉
GUI 开始命令行之旅吧。

你可以通过图形化用户界面(GUI)程序来获取这些外壳命令提供的大量信息,具体取决于使用哪一种Linux发行版。比如说,SUSE
Linux就有一款出色的、图形化配置和管理工具YaST,KDE的KDE System
Guard同样很出色。

有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如
SUSE Linux
就有一个非常棒而且专业的工具 YaST,KDE 的 KDE System Guard
同样很出色。当然,要使用这些工具,你必须在服务器跟前进行操作,而且这些
GUI 的程序占用了很多系统资源,所以说,尽管 GUI
用来做基本的服务器健康状态监测挺好,但如果你想知道真正发生什么,请关掉
GUI 开始命令行之旅吧。

  你应该只在需要的时候去启动 GUI
,不用的时候关掉它。如果要让服务器保持最佳性能,你应该将 Linux
服务器的运行级别 runlevel 设置为 3
,就是控制台模式,当你需要图形化桌面的时候使用 startx 命令来启动它。

不过,Linux管理员要明白的一个常理是:只有绝对必要时,才应该在服务器上运行GUI。那是由于,Linux
GUI耗用系统资源,而这些资源原本可以更合理地用在其他地方。所以,尽管使用GUI程序很适合对服务器健康状况做一个基本的检查,但是如果你想知道到底发生了什么,请关闭GUI,开始从Linux命令外壳使用这些工具。

你应该只在需要的时候去启动 GUI
,不用的时候关掉它。如果要让服务器保持最佳性能,你应该将 Linux
服务器的运行级别 runlevel 设置为 3
,就是控制台模式,当你需要图形化桌面的时候使用 startx 命令来启动它。

  如果你的服务器启动后就直接进入图形界面,你需要修改配置 /etc/inittab
找到 initdefault 一样,将 id:5:initdefault 修改为 id:3:initdefault。

这还意味着,只要在需要时,你才应该在服务器上开启GUI;不用的时候,就及时关掉。为了确保性能最佳,Linux服务器应该在运行级别(runlevel)3下运行,这个运行级别完全支持网络和多个用户,但是在机器启动时,又不开启GUI。如果你果真需要图形化桌面,总是可以从外壳提示符下运行startx,获得图形化桌面。

如果你的服务器启动后就直接进入图形界面,你需要修改配置 /etc/inittab 找到
initdefault 一样,将 id:5:initdefault 修改为 id:3:initdefault。

  如果你没找到 /etc/inittab 文件,那就创建一个新的,文件内容增加 id:3
这么一行。这样下次服务器启动的时候就不会进入图形界面。如果你不想等到服务器重启的时候才生效,你可以执行
init 3 这个命令。

如果你的服务器启动后进入到图形化桌面,就需要更改这种情况。为此,进入到终端窗口,使用su命令切换到root用户,然后用你常用的编辑器打开/etc/inittab文件。

如果你没找到 /etc/inittab 文件,那就创建一个新的,文件内容增加 id:3
这么一行。这样下次服务器启动的时候就不会进入图形界面。如果你不想等到服务器重启的时候才生效,你可以执行
init 3 这个命令。

  一旦你的服务器是在控制台模式下运行,你就可以开始我们接下来的内容。

一旦进入到文件里面,找到initdefault这一行,将id:5:initdefault:改为id:3:initdefault:。

一旦你的服务器是在控制台模式下运行,你就可以开始我们接下来的内容。

  iostat

要是没有/etc/inittab文件,就创建一个,并添加id:3这一行。保存后退出。下次你启动进入服务器时,它会启动进入到运行级别3。如果你不想在进行这种更改后重启,也可以用命令init
3,立即设置服务器的运行级别。

iostat

iostat 命令用来显示存储子系统的详细信息,通常用它来监控磁盘 I/O
的情况。要特别注意 iostat 统计结果中的 %iowait
值,太大了表明你的系统存储子系统性能低下。

  iostat命令用来显示存储子系统的详细信息,通常用它来监控磁盘
I/O 的情况。要特别注意 iostat 统计结果中的 %iowait
值,太大了表明你的系统存储子系统性能低下。

一旦你的服务器在init
3下运行,就可以开始使用下列外壳程序,看看你的服务器里面出现了什么情况。

meminfo 和 free

Meminfo 可让你获取内存的详细信息,你可以使用 cat 和 grep 命令来显示
meminfo 信息:

 

1 cat /proc/meminfo

另外你可以使用 free 命令来显示动态的内存使用信息,free
只是给你大概的内存信息,而 meminfo 提供的信息更加详细。例如在 oschina
上的 free 命令执行结果:

www.hj8828.com 1

  meminfo 和 free

iostat

mpstat

mpstat mpstat是MultiProcessor
Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。

再来看看 oschina 上的 mpstat 命令执行结果:

www.hj8828.com 2

关于 mpstat
执行结果中的参数意思请参考此贴。

  Meminfo可让你获取内存的详细信息,你可以使用
cat 和 grep 命令来显示 meminfo 信息:

iostat
命令详细地显示了存储子系统方面的情况。你通常用iostat来监控存储子系统总体上运行状况如何,并且在用户注意到服务器运行缓慢之前提早发现输入/输出缓慢的问题。相信我,你应该在用户发现这些问题之前先发现这些问题!

netstat

Netstat 和 ps 命令类似,是 Linux
管理员基本上每天都会用的工具,它显示了大量跟网络相关的信息,例如 socket
的使用、路由、接口、协议、网络等等,下面是一些常用的参数:

 

1 -a Show all socket information
2 -r Show routing information
3 -i Show network interface statistics
4 -s Show network protocol statistics

  1cat /proc/meminfo

meminfo和free

nmon

Nmon, 是 Nigel’s Monitor 的缩写,是一个使用很普遍的开源工具,用以监控
Linux 系统的性能。Nmon
监控多个子系统的性能数据,例如处理器的使用率、内存使用率、队列、磁盘I/O统计、网络I/O统计、内存页处理和进程信息。Nmon
也提供了一个图形化的工具:

www.hj8828.com 3

要运行
nmon,你可以在命令行中启动它,然后选择要监控的子系统,这些子系统都对应有一个快捷键,例如输入
c 可查看 CPU 信息,m用于查看内存,d用来查看磁盘信息等,你也可以使用 -f
命令将 nmon 的执行结果保存到一个 CSV 文件中,便于日后分析。

在每日的监控工作中,我发现 nmon 是我最常用的工具。

www.hj8828.com 4

  另外你可以使用 free 命令来显示动态的内存使用信息,free
只是给你大概的内存信息,而 meminfo 提供的信息更加详细。

meminfo为你详细显示了内存方面的情况。你通常可以使用另一个程序,比如cat和grep,来访问meminfo的信息。比如说,cat
/proc/meminfo为你详细显示了服务器的内存在任何一个时间的使用情况。

  mpstat

如果想快速了解内存的概要信息,可以使用free命令。简而言之,free为你提供了概要信息;meminfo为你提供了详细信息。

  mpstatmpstat是MultiProcessor
Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。

Linux系统管理员…

  关于 mpstat 执行结果中的参数意思请参考此贴。

  netstat

  Netstat 和 ps 命令类似,是 Linux
管理员基本上每天都会用的工具,它显示了大量跟网络相关的信息,例如 socket
的使用、路由、接口、协议、网络等等,下面是一些常用的参数: