假如你想晓得你的服务器正在做干哪些,你就须要了解一些基本的命令,一旦你精通了那些命令,那你就是一个专业的Linux系统管理员。
有些Linux发行版会提供GUI程序来进行系统的监控,比如SUSELinux就有一个十分棒但是专业的工具YaST,KDE的KDESystemGuard同样很出众。其实,要使用这种工具,你必须在服务器跟前进行操作,但是这种GUI的程序占用了好多系统资源,所以说linux服务器资源监控,虽然GUI拿来做基本的服务器健康状态检测很好,但假如你想晓得真正发生哪些,请关闭GUI开始命令行之旅吧。
你应当只在须要的时侯去启动GUI,不用的时侯关闭它。假如要让服务器保持最佳性能,你应当将Linux服务器的运行级别runlevel设置为3,就是控制台模式,当你须要图形化桌面的时侯使用startx命令来启动它。
假如你的服务器启动后就直接步入图形界面,你须要更改配置/etc/inittab找到initdefault一样中标麒麟linux,将id:5:initdefault更改为id:3:initdefault。
假如你没找到/etc/inittab文件,那就创建一个新的,文件内容降低id:3如此一行。这样上次服务器启动的时侯就不会步入图形界面。假如你不想等到服务器重启的时侯才生效,你可以执行init3这个命令。
一旦你的服务器是在控制台模式下运行,你就可以开始我们接出来的内容。
iostat
iostat命令拿来显示储存子系统的详尽信息,一般用它来监控c盘I/O的情况。要非常注意iostat统计结果中的%iowait值,太大了表明你的系统储存子系统性能低下。
meminfo和free
Meminfo可让你获取显存的详尽信息,你可以使用cat和grep命令来显示meminfo信息:
cat /proc/meminfo
另外你可以使用free命令来显示动态的显存使用信息,free只是给你大约的显存信息,而meminfo提供的信息愈发详尽。诸如在oschina上的free命令执行结果:
mpstat
mpstatmpstat是MultiProcessorStatistics的简写,是实时系统监控工具。其报告与CPU的一些统计信息,这种信息储存在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息linux服务器资源监控,并且还能查看特定CPU的信息。
再来看看oschina上的mpstat命令执行结果:
关于mpstat执行结果中的参数意思请参考此贴。
netstat
Netstat和ps命令类似,是Linux管理员基本上每天都会用的工具,它显示了大量跟网路相关的信息,比如socket的使用、路由、接口、协议、网络等等,下边是一些常用的参数:
-a Show all socket information -r Show routing information -i Show network interface statistics -s Show network protocol statistics
nmon
Nmon,是Nigel'sMonitor的简写,是一个使用很普遍的开源工具,用以监控Linux系统的性能。Nmon监控多个子系统的性能数据,比如处理器的使用率、内存使用率、队列、磁盘I/O统计、网络I/O统计、内存页处理和进程信息。Nmon也提供了一个图形化的工具:
要运行nmon,你可以在命令行中启动它,之后选择要监控的子系统,这种子系统都对应有一个快捷键,比如输入c可查看CPU信息,m用于查看显存,d拿来查看c盘信息等,你也可以使用-f命令将nmon的执行结果保存到一个CSV文件中,以便日后剖析。
在每日的监控工作中linux 内核,我发觉nmon是我最常用的工具。
pmap
pmap命令拿来报告每位进程占用显存的详尽情况,可用来看是否有进程超支了,该命令须要进程id作为参数。
ps和pstree
ps和pstree命令是Linux系统管理员最好的同学,都可以拿来列表正在运行的所有进程。ps告诉你每位进程占用的显存和CPU处理时间,而pstree显示的信息没这么详尽,但它以树状结构显示进程之间的依赖关系,包括子进程信息。一旦发觉某个进程有问题,你可以使用kill来杀掉它。
sar
sar程序是系统监控工具里的德国军刀。该程序包含三个工具:sar拿来显示数据,sa1和sa2拿来搜集数据并保存。sar可拿来显示CPU使用率、内存页数据、网络I/O和传输统计、进程创建活动和c盘设备的活动详情。sar和nmon最大的不同就是sar跟适宜用作常年的监控,而nmon可以让你快速的了解系统当前状态。
strace
strace常常被觉得是程序员调试的工具,但不止这么。它可以记录进程进行系统调用的详情,因而它也是一个十分好的确诊工具,比如你可以使用它来找出某个程序正在打开某个配置文件。
Strace也有一个缺陷,但它在跟踪某个进程时会让该进程的性能显得十分差,因而请慎重使用。
tcpdump
Tcpdump是一个简单、可靠的网路监控工具,拿来做基本的合同剖析,瞧瞧这些进程在使用网路以及怎样使用网路。其实,假如你要获取跟详尽的信息,你应当使用Wireshark(下边我们会介绍).
top
top命令显示当前的活动进程,默认它是按消耗CPU的厉害程度进行排序,每5秒钟刷新一次列表,你也可以选择不同的排序方法,比如m是按显存占用形式进行排序的快捷键。
uptime
uptime命令告诉你这台服务器从开机启动到现今早已运行了多长时间了。同时也包含了从启动到现今服务器的平均负载情况,瞧瞧oschina的数据:
我早已忘了先前是为何重启机器了,似乎是换了个机柜。
vmstat
你可以使用vmstat来监控虚拟显存,通常Linux上的开发者喜欢使用虚拟显存来获得最佳的储存性能。该命令报告关于内核线程、虚拟显存、磁盘、陷阱和CPU活动的统计信息。由vmstat命令生成的报告可以用于平衡系统负载活动。系统范围内的那些统计信息(所有的处理器中)都估算出以比率表示的平均值,或则估算其总和。
在oschina上执行vmstat的结果:
Wireshark
Wireshark,前身是Ethereal,是一个网路合同检查程序,让您经由程序抓取运行的网站的相关资讯,包括每一封包流向及其内容、资讯可依操作系统语族看出,便捷查看、监控TCPsession动态等等.
这儿列举的是大多数最有价值的Linux监控程序,其实,你可能就会使用其他的工具,不妨跟你们分享下。