1、用vmstat来监控Linux系统的整体性能
vmstat是一个相当全面的性能分析工具,可以用来观察系统的进程状态、内存使用情况、虚拟内存的使用情况、磁盘的I/O、中断、上下文切换、CPU的使用情况等性能信息。建议熟练掌握此命令。举例如下:
[root@localhost ~]# vmstat 1 4 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buffcache si sobibo incsus sy idwa st 0 00225159234310474124800023100010000 0 002251592343104741248000010341930010000 0 002251592343104741248000010171470010000 0 002251592343104741248000010281830010000 |
其中:
procs
r:等待运行的进程数。
b:处在非中断睡眠状态的进程数。
w:被交换出去的可运行的进程数。此数由Linux计算得出,但Linux并不耗尽交换空间。
memory
swpd:虚拟内存使用情况,单位为KB。
free:空闲的内存,单位为KB。
buff:被用来作为缓存的内存数,单位为KB。
swap
si:从磁盘交换到内存的交换页数量,单位为KB。
so:从内存交换到磁盘的交换页数量,单位为KB。
io
bi:发送到块设备的块数,单位为块。
bo:从块设备接收到的块数,单位为块。
system
in:每秒的中断数,包括时钟中断。
cs:每秒的环境(上下文)切换次数。
cpu
按CPU的总使用百分比来显示。
us:CPU使用时间。
sy:CPU系统使用时间。
id:闲置时间。
标准情况下r和b值应该为:
r<5,b≈0
假设输出的信息中:
r经常大于3或4,且id经常少于50,表示CPU的负荷很重。
pi、po长期不等于0,表示内存不足。
disk经常不等于0,且在b中的队列大于2或3,表示io的性能不好。
2、查看系统内核
查看系统内核主要是为了掌握其版本号,为安装LVS等软件做准备。我们可以用命令uname -a来查看,如下所示:
[root@localhost ~]# uname -a Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux |
简化的参数命令如下:
[root@localhost ~]# uname -r |
2.6.18-194.el5如果要查看系统是32位还是64位,可以用如下命令:[root@localhost /]# ls -lF /| grep /$此命令会查找是否有/lib64的目录,有则表示系统为64位,无则表示系统为32位。大家记住一点,64位的CPU系统架构可以安装32位或64位的系统,而32位的CPU架构只能安装32位的系统。查找情况如下所示:
drwxr-xr-x 2 root root 4096 03-13 04:02 bin/ drwxr-xr-x 4 root root 1024 03-08 16:44 boot/ drwxr-xr-x 5 root root 4096 03-27 00:58 data/ drwxr-xr-x 11 root root 3800 03-17 07:27 dev/ drwxr-xr-x 101 root root 12288 03-26 08:47 etc/ drwxr-xr-x 4 root root 4096 03-09 10:34 home/ drwxr-xr-x 11 root root 4096 03-13 04:02 lib/ drwxr-xr-x 7 root root 4096 03-13 04:02 lib64/ drwx------ 2 root root 16384 03-08 16:33 lost+found/ drwxr-xr-x 2 root root 4096 2010-01-27 media/ drwxr-xr-x 2 root root 0 03-16 16:23 misc/ drwxr-xr-x 2 root root 4096 2010-01-27 mnt/ drwxr-xr-x 2 root root 0 03-16 16:23 net/ drwxr-xr-x 2 root root 4096 2010-01-27 opt/ dr-xr-xr-x 142 root root 0 03-16 16:22 proc/ drwxr-x--- 17 root root 4096 03-28 11:30 root/ drwxr-xr-x 2 root root 12288 03-13 04:02 sbin/ drwxr-xr-x 2 root root 4096 03-08 16:35 selinux/ drwxr-xr-x 2 root root 4096 2010-01-27 srv/ drwxr-xr-x 11 root root 0 03-16 16:23 sys/ drwxrwxrwt 5 root root 4096 03-28 04:02 tmp/ drwxr-xr-x 15 root root 4096 03-08 16:40 usr/ drwxr-xr-x 21 root root 4096 03-08 16:47 var/ |
另一种常见方法是通过file命令来判断系统中的文件是32位还是64位的,以此作为判断系统的依据,如下所示:
[root@localhost /]# file /sbin/init /sbin/init: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped |
此结果表示系统为64位的。
3、查看服务器使用的Linux发行版的相关信息
下面的命令可查看服务器使用的Linux发行版的名称、版本号及描述信息等:
[root@localhost /]# lsb_release -a LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1- noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch Distributor ID: CentOS Description: CentOS release 5.5 (Final) Release: 5.5 |
Codename:Final如果Centos5.5或以前的版本没有此命令,我们可以通过yum -y install redhat-lsb来安装。
4、查看系统已载入的相关模块
Linux操作系统的核心具有模块化的特性,因此在编译核心时,无须把全部的功能都放入核心。可以将这些功能编译成一个个单独的模块,待需要时再分别载入。比如说在安装LVS+Keepalived时,我们经常会用lsmod来查看lvs模块是否已经载入,如下所示:
root@localhost ~]# lsmod| grep ip_vs ip_vs_wrr 35905 1 ip_vs 122113 3 ip_vs_wrr5.在Linux下查找PCI设置 |
有时需要在Linux下查找PCI设置。这时可以用lspci命令,它能列出机器中的PCI设备信息,比如声卡、显卡、Modem、网卡等的信息,主板集成设备的信息也能列出来。lspci读取的是hwdata数据库。可能有读者和我一样,最关心的还是网卡型号。
[root@localhost ~]# lspci | grep Ether 06:07.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller (rev 05) 07:08.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller (rev 05) |
网卡的监控一般用命令miit-tool和iptraf,这个知识点将在后面讲解。
本文主要从服务器的CPU、内存、硬盘性能、负载及其他方面详细说明了Linux服务器的整体性能状态,希望大家能够通过以上所列的方法来了解自己的Linux服务器的性能状态,这对工作会有很大帮助。