Vmstat

vmstat命令是显示Linux性能指标的方法,输出分为6个类别:进程、内存、交换区、I/O、系统和CPU

[root@hky-linux1 ~]# vmstat

进程        内存         交换分区  io     系统      cpu

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----     -

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs   us  sy id   wa st

 0  0    0    190212 872  21760    0    0    42   14  1043  106  1  1  97  1  0

进程:

r列是可运行进程的数量,长期大于1cpu不足,当业务繁忙时,不超过两倍的cpu数量,也算正常,r越大,系统越繁忙

b列是阻塞进程的数量:正常小为0

内存:Swpd:已用的交换空间数量

Free:尚未分配的内存

Buff:缓冲使用的内存,对块设备读写才需要缓冲

Cache:文件系统缓存使用的,

Swapsiso0是正常的

Si:从交换区到内存的数量

So:从内存到交换区的数量

I/O

Bi:从磁盘读去的块数,数量越大,表示读取的越频繁

Bo:每秒写入到磁盘的块数。数量越大,磁盘活动率越高

System

In:系统中断

Cs:进程上下文开关

Cpu

Us:用户进程消耗值比较高,则用户进程消耗cpu时间太长,长期大于50%,考虑优化用户程序,持续大于50,业务高峰期算是正常

Sy:内核进程消耗—us+sy大于80%,则cpu不足

WaI/O进程消耗的cpu,超过30%,可能由磁盘大量随即访问造成

Id:空闲,持续小于50,服务高峰期可以接受

[root@hky-linux1 ~]# vmstat 2 5    //每两秒查看一次,查看五次

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 0  0      0 127740  21412  54752    0    0    42    13 1041  105  0  1 97  1  0

 0  0      0 127500  21412  54752    0    0     0     0 1015  105  1  3 96  0  0

 0  0      0 127500  21412  54752    0    0     0     0 1015   93  0  0 100  0  0

 0  0      0 127560  21420  54752    0    0     0    34 1015   94  0  1 99  0  0

 0  0      0 127560  21420  54752    0    0     0     0 1014   93  0  1 99  0  0

现在测试一下查看5次,每次2秒用多少时间

[root@hky ~]# time vmstat 2 5

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 0  0    116  18784  32052  88552    0    0    49    20  710  119  2  4 91  3  0

 0  0    116  18784  32052  88552    0    0     0     0  609   62  0  1 99  0  0

 0  0    116  18784  32052  88552    0    0     0    44  627   71  0  0 100  0  0

 0  0    116  18784  32068  88552    0    0     0    24  624   79  0  1 97  2  0

 0  0    116  18784  32068  88552    0    0     0     0  614   71  0  0 100  0  0

 

real    0m8.016s

user    0m0.002s

sys     0m0.003s

用时8秒,因为第一次不要时间

这里有一个时间函数需要掌握

[root@hky ~]# ceshi=$(date +%s.%N);vmstat 2 3;hky=$(date +%s.%N); awk -v ceshi=${ceshi} -v hky=${hky} 'BEGIN {print hky-ceshi}'

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 0  0    116  14580  34872  89084    0    0    46    19  706  117  1  4 92  3  0

 0  0    116  14580  34880  89076    0    0     0    18  596   76  0  1 99  0  0

 0  0    116  14580  34880  89088    0    0     0     0  589   67  0  0 100  0  0

4.01254

大家自己理解

 

Vmstat-a  看出内存使用的和未使用的

[root@hky ~]# vmstat -a

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st

 0  0    116  14400  70408 143008    0    0    46    19  706  117  1  4 92  3  0

Vmstat –d 硬盘读写情况

[root@hky ~]# vmstat -d

disk- ------------reads------------ ------------writes----------- -----IO------

       total merged sectors      ms  total merged sectors      ms    cur    sec

ram0       0      0       0       0      0      0       0       0      0      0

ram1       0      0       0       0      0      0       0       0      0      0

ram2       0      0       0       0      0      0       0       0      0      0

ram3       0      0       0       0      0      0       0       0      0      0

ram4       0      0       0       0      0      0       0       0      0      0

ram5       0      0       0       0      0      0       0       0      0      0

ram6       0      0       0       0      0      0       0       0      0      0

ram7       0      0       0       0      0      0       0       0      0      0

ram8       0      0       0       0      0      0       0       0      0      0

ram9       0      0       0       0      0      0       0       0      0      0

ram10      0      0       0       0      0      0       0       0      0      0

ram11      0      0       0       0      0      0       0       0      0      0

ram12      0      0       0       0      0      0       0       0      0      0

ram13      0      0       0       0      0      0       0       0      0      0

ram14      0      0       0       0      0      0       0       0      0      0

ram15      0      0       0       0      0      0       0       0      0      0

sda    90558  27351 1569858  606361  25774  55985  653314  776684      0    512

sdb      115    464    2272     229     30     20     100     299      0      0

hdc      701     10    2920     310      0      0       0       0      0      0

fd0        0      0       0       0      0      0       0       0      0      0

disk- ------------reads------------ ------------writes----------- -----IO------

       total merged sectors      ms  total merged sectors      ms    cur    sec

md0        0      0       0       0      0      0       0       0      0      0

loop0      0      0       0       0      0      0       0       0      0      0

loop1      0      0       0       0      0      0       0       0      0      0

loop2      0      0       0       0      0      0       0       0      0      0

loop3      0      0       0       0      0      0       0       0      0      0

loop4      0      0       0       0      0      0       0       0      0      0

loop5      0      0       0       0      0      0       0       0      0      0

loop6      0      0       0       0      0      0       0       0      0      0

loop7      0      0       0       0      0      0       0       0      0      0

Vmstat –p /dev/sdb2  1 某一块盘的读写情况

 

Sysstay工具

 Iostat /sar /mpstat 三个工具都来自Sysstay

 

安装sysstat很简单

 [root@hky-linux1 sysstat]# rpm -ivh sysstat-9.0.6.1-3.i386.rpm-----安装

Sar收集器 /var/log/sa

 

修改配置文件

[root@hky-linux1 ~]# vi /etc/cron.d/sysstat

# Run system activity accounting tool every 10 minutes

*/10 * * * * root /usr/lib/sa/sa1 -S DISK 10  60

# 0 * * * * root /usr/lib/sa/sa1 -S DISK 600 6 &

# Generate a daily summary of process accounting at 23:53

59 23 * * * root /usr/lib/sa/sa2 –A

[root@hky-linux1 ~]# vi /etc/sysconfig/sysstat

# sysstat-9.0.6.1 configuration file.

 

# How long to keep log files (in days).

# If value is greater than 28, then log files are kept in

# multiple directories, one for each month.

HISTORY=7000

 

# Compress (using gzip or bzip2) sa and sar files older than (in days):

COMPRESSAFTER=3

Linux系统检测工具 二(Free,Top,ps,Vmstat,Sysstat)_Vmstat

统计cpu信息

[root@hky-linux1 ~]# sar -u

Linux 2.6.18-53.el5 (hky-linux1)        07/01/2010      _i686_  (1 CPU)

 

06:30:02 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle

06:40:01 AM     all      0.04      0.00      0.48      0.13      0.00     99.35

06:50:01 AM     all      0.05      0.00      0.50      0.15      0.00     99.30

07:00:01 AM     all      0.05      0.00      0.60      0.46      0.00     98.90

07:10:01 AM     all      0.09      0.00      0.65      0.51      0.00     98.76

07:20:01 AM     all      0.04      0.20      1.59      4.55      0.00     93.63

07:30:01 AM     all      0.06      0.00      0.57      0.28      0.00     99.08

Average:        all      0.05      0.03      0.73      1.01      0.00     98.17

Cpu

All 表示统计信息为所有 CPU 的平均值

%user:用户运行进程所花的时间

%nice:运行正常进程所花的时间

%system:在内核模式中运行进程所花的时间

%iowait:没有进程在该CPU上执行时,处理器等待I/O完成的时间

%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比

%idle:没有进程在该CPU上执行的时间

查看报告

[root@hky-linux1 sa]# sar -f /var/log/sa/sa01

Linux 2.6.18-53.el5 (hky-linux1)        07/01/2010      _i686_  (1 CPU)

 

06:30:02 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle

06:40:01 AM     all      0.04      0.00      0.48      0.13      0.00     99.35

06:50:01 AM     all      0.05      0.00      0.50      0.15      0.00     99.30

07:00:01 AM     all      0.05      0.00      0.60      0.46      0.00     98.90

在多cpu的系统中,查看分解的cpu信息

[root@hky-linux1 sa]# sar -u -P ALL 5 5

Linux 2.6.18-53.el5 (hky-linux1)        07/01/2010      _i686_  (1 CPU)

 

07:38:51 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle

07:38:56 AM     all      0.00      0.00      0.80      0.00      0.00     99.20

07:38:56 AM       0      0.00      0.00      0.80      0.00      0.00     99.20

磁盘io数据统计

[root@hky-linux1 ~]# sar -d 5 2

Linux 2.6.18-53.el5 (hky-linux1)        07/01/2010      _i686_  (1 CPU)

 

07:40:36 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util

07:40:41 AM    dev8-0      0.00      0.00      0.00      0.00      0.01      0.00      0.00      0.54

07:40:41 AM   dev8-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

07:40:41 AM   dev8-32      0.00      0.00      0.00      0.00      0.00      0.00  

DEV:磁盘设备

Tps:每秒传输数

rd_sec/s:每秒xx字节读取数

wr_sec/s:每秒xx字节写入数

显示io和传送速率的信息

[root@hky-linux1 ~]# sar -b 5 3

Linux 2.6.18-53.el5 (hky-linux1)        07/01/2010      _i686_  (1 CPU)

 

07:53:25 AM       tps      rtps      wtps   bread/s   bwrtn/s

07:53:30 AM      0.00      0.00      0.00      0.00      0.00

07:53:35 AM      1.00      0.00      1.00      0.00     25.60

07:53:40 AM      0.00      0.00      0.00      0.00      0.00

Average:         0.33      0.00      0.33      0.00      8.54

tps 每秒钟物理设备的 I/O 传输总量

rtps 每秒钟从物理设备读入的数据总量

wtps 每秒钟向物理设备写入的数据总量

bread/s 每秒钟从物理设备读入的数据量,单位为 /s

bwrtn/s 每秒钟向物理设备写入的数据量,单位为 /s

显示内存页面统计

[root@hky-linux1 ~]# sar -B 5

Linux 2.6.18-53.el5 (hky-linux1)        07/01/2010      _i686_  (1 CPU)

 

07:55:26 AM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff

07:55:31 AM      0.00      8.02     15.83      0.00     15.63      0.00      0.00      0.00      0.00

07:55:36 AM      0.00      6.45     11.69      0.00     25.20      0.00      0.00      0.00      0.00

pgpgin/s 每秒钟从磁盘读入的系统页面的 KB 总数

pgpgout/s 每秒钟向磁盘写出的系统页面的 KB 总数

fault/s 系统每秒产生的页面失效(major + minor)数量

majflt/s 系统每秒产生的页面失效(major)数量

每秒创建的进程数的进程统计

[root@hky-linux1 ~]# sar -C 5 3

Linux 2.6.18-53.el5 (hky-linux1)        07/01/2010      _i686_  (1 CPU)

 

07:57:12 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle

07:57:17 AM     all      0.21      0.00      2.06      0.82      0.00     96.91

07:57:22 AM     all      0.00      0.00      0.60      0.20      0.00     99.19

 

网络信息统计

[root@hky-linux1 ~]# sar -n DEV 5 3 |grep eth0

07:58:22 AM      eth0      0.40      0.20      0.02      0.01      0.00      0.00      0.00

07:58:27 AM      eth0      0.20      0.20      0.01      0.04      0.00      0.00      0.00

[root@hky-linux1 ~]# sar -n DEV 5 3

Linux 2.6.18-53.el5 (hky-linux1)        07/01/2010      _i686_  (1 CPU)

 

07:45:44 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

07:45:49 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

07:45:49 AM      eth0      0.20      0.20      0.01      0.03      0.00      0.00      0.00

07:45:49 AM      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

IFACELAN接口

rxpck/s:每秒钟接收的数据包

txpck/s:每秒钟发送的数据包

rxbyt/s:每秒钟接收的字节数

txbyt/s:每秒钟发送的字节数

rxcmp/s:每秒钟接收的压缩数据包

txcmp/s:每秒钟发送的压缩数据包

rxmcst/s:每秒钟接收的多播数据包

网络错误信息统计

[root@hky-linux1 ~]# sar -n EDEV 5 3

Linux 2.6.18-53.el5 (hky-linux1)        07/01/2010      _i686_  (1 CPU)

 

07:48:24 AM     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram                                                                               /s  rxfifo/s  txfifo/s

07:48:29 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.                                                                               00      0.00      0.00

07:48:29 AM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.                                                                               00      0.00      0.00

07:48:29 AM      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.                                                                               00      0.00      0.00

[root@hky-linux1 ~]# sar -n EDEV 5 |egrep 'eth0|IFACE'

07:59:16 AM     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s

07:59:21 AM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

IFACELAN接口

rxerr/s:每秒钟接收的坏数据包

txerr/s:每秒钟发送的坏数据包

coll/s:每秒冲突数

rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数

txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数

txcarr/s:发送数据包时,每秒载波错误数

rxfram/s:每秒接收数据包的帧对齐错误数

rxfifo/s:接收的数据包每秒FIFO过速的错误数

txfifo/s:发送的数据包每秒FIFO过速的错误数