码迷,mamicode.com
首页 > 系统相关 > 详细

linux系统网络命令(六)

时间:2015-07-19 06:43:51      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:linux、vmstat、free、iostat

一、vmstat命令

1、简介

        vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。vmstat 工具提供了一种低开销的系统性能观察方式。因为 vmstat 本身就是低开销工具,在非常高负荷的服务器上,你需要查看并监控系统的健康情况,在控制窗口还是能够使用vmstat 输出结果。


2、命令格式

vmstat [-a] [-n] [-S unit] [delay [ count]]

vmstat [-s] [-n] [-S unit]

vmstat [-m] [-n] [delay [ count]]

vmstat [-d] [-n] [delay [ count]]

vmstat [-p disk partition] [-n] [delay [ count]]

vmstat [-f]


3、常用选项

-a:显示活跃和非活跃内存

-f:显示从系统启动至今的fork数量 。

-m:显示slabinfo

-n:只在开始时显示一次各字段名称。

-s:显示内存相关统计信息及多种系统活动数量。

-d:显示磁盘数据。

-p:显示指定磁盘分区统计信息

-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

-V:显示vmstat版本信息。

         -D  显示磁盘统计表


4、应用举例

4.1、以M为单位每两秒输出一次结果并执行三次输出:

[root@hpf-linux ~]# vmstat -S M 2 3
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    689     38    195    0    0     8     1   12   16  0  0 100  0  0
 0  0      0    689     38    195    0    0     0     0   13   16  0  0 100  0  0
 0  0      0    689     38    195    0    0     0     0   13   14  0  0 100  0  0


说明:

Procs(进程):

r: 运行队列中进程数量

b: 等待IO的进程数量

Memory(内存):

swpd: 使用虚拟内存大小

free: 可用内存大小

buff: 用作缓冲的内存大小

cache: 用作缓存的内存大小

Swap:

si: 每秒从交换区写到内存的大小

so: 每秒写入交换区的内存大小

IO:(现在的Linux版本块的大小为1024bytes)

bi: 每秒读取的块数

bo: 每秒写入的块数

系统:

in: 每秒中断数,包括时钟中断。

cs: 每秒上下文切换数。

CPU(以百分比表示):

us: 用户进程执行时间(user time)

sy: 系统进程执行时间(system time)

id: 空闲时间(包括IO等待时间)

wa: 等待IO时间

        应用举例: 如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。如果si,so 长期不等于0,表示内存不足。如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。


4.2、以M为单位显示活跃和非活跃内存:

[root@hpf-linux ~]# vmstat -a -S M 2 3
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      0    689    114    169    0    0     8     1   12   16  0  0 100  0  0
 0  0      0    689    114    169    0    0     0     0   13   15  0  0 100  0  0
 0  0      0    689    114    169    0    0     0     0   13   15  0  0 100  0  0

使用-a选项显示活跃和非活跃内存时,所显示的内容除增加inact和active外,其他显示内容与例子1相同。

说明:

Memory(内存):

inact: 非活跃内存大小(当使用-a选项时显示)

active: 活跃的内存大小(当使用-a选项时显示)


4.3、查看系统内存使用详细信息:

[root@hpf-linux ~]# vmstat -S M -s
         1006 M total memory
          316 M used memory
          169 M active memory
          114 M inactive memory
          689 M free memory
           38 M buffer memory
          195 M swap cache
         1999 M total swap
            0 M used swap
         1999 M free swap
         1741 non-nice user cpu ticks
           47 nice user cpu ticks
         1265 system cpu ticks
      2883445 idle cpu ticks
         2391 IO-wait cpu ticks
           22 IRQ cpu ticks
         2238 softirq cpu ticks
            0 stolen cpu ticks
       239562 pages paged in
        28430 pages paged out
            0 pages swapped in
            0 pages swapped out
       358226 interrupts
       472296 CPU context switches
   1437106177 boot time
         1677 forks

        这些信息的分别来自于/proc/meminfo,/proc/stat和/proc/vmstat。


4.4、查看/dev/sda1磁盘的读/写:

[root@hpf-linux ~]# vmstat -S M -p /dev/sda1
sda1          reads   read sectors  writes    requested writes
                 507       4004          7         28

说明:

reads:来自于这个分区的读的次数。

read sectors:来自于这个分区的读扇区的次数。

writes:来自于这个分区的写的次数。

requested writes:来自于这个分区的写请求次数。


4.5、查看系统中所有磁盘的读写:

[root@hpf-linux ~]# vmstat -S M -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sr0       33      0     264       7      0      0       0       0      0      0
sda     7732   5829  469716   44808   3420   3731   57180   18212      0     40
sdb      552    641    3752     403      0      0       0       0      0      0
sdc      220     36    1552      34      0      0       0       0      0      0
dm-0      93      0     744      29      0      0       0       0      0      0

        merged:表示一次来自于合并的写/读请求,一般系统会把多个连接/邻近的读/写请求合并到一起来操作。


二、free命令

1、简介

        free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。


2、常用选项

-k:以KB为单位显示内存使用情况,默认不加选项就是以KB为单位;

-m:以MB为单位显示内存使用情况;

-g: 以GB为单位显示内存使用情况;

-o:不显示缓冲区调节列;

-s<间隔秒数>:持续观察内存使用状况;

-t:显示内存总和列


3、应用举例

以MB为单位显示内存和总和列:

[root@hpf-linux ~]# free -m -t
             total       used       free     shared    buffers     cached
Mem:          1006        316        689          0         38        195
-/+ buffers/cache:         82        924
Swap:         1999          0       1999
Total:        3006        316       2689


三、iostat命令

1、简介

        iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。


2、常用选项

-c:仅显示CPU使用情况;

-d:仅显示设备利用率;

-k:显示状态以千字节每秒为单位,而不使用块每秒;

-m:显示状态以兆字节每秒为单位;

-p:仅显示块设备和所有被使用的其他分区的状态;

-t:显示每个报告产生时的时间;

-x:显示扩展状态。


3、应用举例

iostat命令的安装包为sysstat,安装玩后同时还会生成下面几个监控的命令,里面的sar命令在后面还会介绍。

/usr/bin/cifsiostat
/usr/bin/iostat
/usr/bin/mpstat
/usr/bin/pidstat
/usr/bin/sadf
/usr/bin/sar

3.1、iostat命令一个像vmstat命令一样以几秒刷新一次一共刷新n次的方法输出,为了节省不必要的篇幅就不列举了,先介绍下-t、-k选项的使用及说明:

[root@hpf-linux ~]# iostat -t -k
Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月17日 _i686_(1 CPU)
2015年07月17日 21时43分03秒     //-t显示此时间
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.07    0.00    0.12    0.07    0.00   99.74
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn //-k以KB为单位显示
scd0              0.00         0.00         0.00        132          0
sda               0.36         6.88         1.17     236234      40354
sdb               0.02         0.05         0.00       1876          0
sdc               0.01         0.02         0.00        776          0
dm-0              0.00         0.01         0.00        372          0

说明:

cpu属性值说明:

%user:CPU处在用户模式下的时间百分比。

%nice:CPU处在带NICE值的用户模式下的时间百分比。

%system:CPU处在系统模式下的时间百分比。

%iowait:CPU等待输入输出完成时间的百分比。

%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。

%idle:CPU空闲时间百分比。

备注:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源CPU。

tps:该设备每秒的传输次数。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。

kB_read/s:每秒从设备(drive expressed)读取的数据量;

kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;

kB_read:读取的总数据量;kB_wrtn:写入的总数量数据量;

上面的例子中,我们可以看到磁盘sda以及它的各个分区的统计数据,当时统计的磁盘总TPS是0.36,下面是各个分区的TPS。(因为是瞬间值,所以总TPS并不严格等于各个分区TPS的总和) 


3.2、显示磁盘的扩展状态:

[root@hpf-linux ~]# iostat -x
Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月17日 _i686_(1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.07    0.00    0.12    0.07    0.00   99.74
Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
scd0              0.00     0.00    0.00    0.00     0.01     0.00     8.00     0.00    0.21   0.21   0.00
sda               0.17     0.16    0.23    0.13    13.84     2.36    44.69     0.00    5.74   3.48   0.13
sdb               0.02     0.00    0.02    0.00     0.11     0.00     6.80     0.00    0.73   0.68   0.00
sdc               0.00     0.00    0.01    0.00     0.05     0.00     7.05     0.00    0.15   0.15   0.00
dm-0              0.00     0.00    0.00    0.00     0.02     0.00     8.00     0.00    0.31   0.31   0.00

说明:

disk属性值说明:

rrqm/s:  每秒进行 merge 的读操作数目。即 rmerge/s

wrqm/s:  每秒进行 merge 的写操作数目。即 wmerge/s

r/s:  每秒完成的读 I/O 设备次数。即 rio/s

w/s:  每秒完成的写 I/O 设备次数。即 wio/s

rsec/s:  每秒读扇区数。即 rsect/s

wsec/s:  每秒写扇区数。即 wsect/s

rkB/s:  每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。

wkB/s:  每秒写K字节数。是 wsect/s 的一半。

avgrq-sz:  平均每次设备I/O操作的数据大小 (扇区)。

avgqu-sz:  平均I/O队列长度。

await:  平均每次设备I/O操作的等待时间 (毫秒)。

svctm: 平均每次设备I/O操作的服务时间 (毫秒)。

%util:  一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

备注:如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。

        在上面的命令中若单独使用-d选项就不会显示CPU的信息,若使用-c选项则只会显示CPU的信息,同时也可以指定硬盘分区,这里就不多做介绍了。



本文出自 “粗茶淡饭” 博客,请务必保留此出处http://cuchadanfan.blog.51cto.com/9940284/1675940

linux系统网络命令(六)

标签:linux、vmstat、free、iostat

原文地址:http://cuchadanfan.blog.51cto.com/9940284/1675940

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!