查看系统资源(iostat,top,vmstat,mpstat)

维护服务器的时候,要经常查看系统资源的,可以了解一下服务器的运行情况。系统优化时,比如使用memcache时,我要决定分配多少内存给他合适呢,mysql的innodb的参数优化也要考虑到内存使用率,i/o的频繁程度啊,如果使用apache的话,要启动多少个httpd比较合适呢,如果数据库的数据太大,我要看看是不是增加磁盘呢等等,这个时候,我们要知道,有多少资源可用,才能更好的优化我们的系统。

1.top命令查看cpu,mem的使用情况

top - 13:54:34 up  4:29,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  78 total,   1 running,  77 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:   1012548k total,   555232k used,   457316k free,    38052k buffers
Swap:  2047992k total,        0k used,  2047992k free,   378176k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                         
    7 root      20   0     0    0    0 S  0.3  0.0   0:14.05 events/0                                                         
    1 root      20   0 19360 1536 1220 S  0.0  0.2   0:01.04 init                                                             
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                         
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0

top 后 在shift + p 所占进程的排序显示

top 后 在shift + m 所占内存的排序显示

2.vmstat命令查看

[root@master ~]# vmstat 2    #每隔2s钟显示一次
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 457324  38076 378176    0    0    19    21   19   30  0  0 99  0  0	
 0  0      0 457316  38076 378176    0    0     0     0   22   17  0  0 100  0  0	
 0  0      0 457316  38076 378176    0    0     0     0   18   15  0  1 100  0  0
 
memory下的参数说明:
swpd:                   已用的交换空间数量
free:                   空闲内存数量
buff:                   缓冲使用的内存数量
cache:               文件系统缓存使用的内存数量

swap交换分区下的参数说明:
si:                     从磁盘转换到内存的数量
so:                     从内存转换到磁盘的数量

i/o磁盘i/o下的参数说明:
bi:                     从块设备读的数量
bo:                     写块设备的数量

cpu下的一些参数说明:
us:                     用户方式下所占CPU工作时间的百分比
sy:                     内核进程所占cpu工作时间的百分比
id:                     cpu处在空闲状态下的时间百分比
wa:                     等待I/O所占用CPU工作时间的百分比 	

3.mpstat命令查看

[root@master ~]# mpstat 1        #1s钟显示一次结果
Linux 2.6.32-358.el6.x86_64 (master) 	07/08/2015 	_x86_64_	(1 CPU)

02:00:35 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
02:00:36 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
02:00:37 PM  all    0.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   99.00
02:00:38 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
%user                            用户所占的CPU时间百分比
%nice                            nice值为负进程的CPU时间百分比
%sys                             系统内核所占cpu时间的百分比
%iowait                          i/o等待所占cpu时间的百分比
%idle                            cpu闲置时间的百分比
intr/s                           每秒cpu的中断次数

4.iostat查看磁盘I/O情况

[root@master ~]# iostat -x 2
Linux 2.6.32-358.el6.x86_64 (master) 	07/08/2015 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.08    0.03    0.27    0.27    0.00   99.36

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.25     4.43    0.72    0.63    37.16    40.54    57.60     0.01    8.79   2.78   0.37

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.50    1.51    0.00   97.99

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.50    0.00     8.04     0.00    16.00     0.02   37.00  37.00   1.86

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.50    0.00    0.00   99.50
           
rrqm/s:              每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s:              每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s:                 每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s:                 每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s:              每秒读扇区数。即 delta(rsect)/s
wsec/s:              每秒写扇区数。即 delta(wsect)/s
rkB/s:               每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
wkB/s:               每秒写K字节数。是 wsect/s 的一半。(需要计算)
avgrq-sz:            平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz:            平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await:               平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm:               平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util:               一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)

5.dstat命令查看

root@master ~]# dstat
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0  99   0   0   0|  18k   20k|   0     0 |   0     0 |  19    30 
  0   1  99   0   0   0|   0     0 | 349B  952B|   0     0 |  24    22 
  0   0 100   0   0   0|   0     0 | 244B  526B|   0     0 |  20    19 
  0   0 100   0   0   0|   0     0 | 214B  472B|   0     0 |  24    22 
  0   0 100   0   0   0|   0     0 | 214B  472B|   0     0 |  21    17 
  0   0 100   0   0   0|   0     0 | 214B  472B|   0     0 |  27    26 
  0   0  99   0   0   1|   0    32k| 214B  472B|   0     0 |  27    26 
  0   1  99   0   0   0|   0     0 | 214B  472B|   0     0 |  25    19 
  1   0  99   0   0   0|   0     0 | 214B  472B|   0     0 |  18    17 
  0   0 100   0   0   0|   0     0 | 214B  472B|   0     0 |  21    20 
  0   0 100   0   0   0|   0     0 | 214B  472B|   0     0 |  21    21 
  0   0 100   0   0   0|   0     0 | 214B  472B|   0     0 |  22    21 
  0   0 100   0   0   0|   0     0 | 214B  472B|   0     0 |  19    17 
  0   1  99   0   0   0|   0     0 | 214B  472B|   0     0 |  24    19 
  0   0 100   0   0   0|   0     0 | 214B  472B|   0     0 |  19    17 
  0   0 100   0   0   0|   0     0 | 214B  472B|   0     0 |  29    28 
  
常用参数:

  -c, --cpu              显示CPU情况
  -C 0,3,total           统计指定CPU或汇总信息
  -d, --disk             显示磁盘情况
  -D total,hda           统计指定磁盘或汇总信息
  -g, --page             enable page stats
  -i, --int              显示中断统计
  -I 5,eth2              统计系统负载情况,包括1分钟、5分钟、15分钟平均值
  -l, --load             enable load stats
  -m, --mem              显示内存情况
  -n, --net              显示网络情况
  -N eth1,total          可以指定网络接口
  -p, --proc             统计进程信息,包括runnable、uninterruptible、new
  -r, --io 		     统计I/O请求,包括读写请求
  -s, --swap             显示swap情况
  -S swap1,total         可以指定多个swap
  -t, --time             显示统计时时间,对分析历史数据非常有用
  -y, --sys              统计系统信息,包括中断、上下文切换
  --ipc                  报告IPC消息队列和信号量的使用情况
  --lock                 统计lock信息
  --raw                  统计raw信息
  --tcp                  统计tcp信息
  --udp                  统计udp信息
  --unix                 统计unix信息
  -M stat1,stat2         统计external信息
         --mods stat1,stat2
  -a, --all              使用-cdngy 缺省的就是这样显示
  -f, --full             使用 -C, -D, -I, -N and -S 显示
  -v, --vmstat           使用-pmgdsc -D 显示
  --integer              show integer values
  --nocolor              不使用颜色功能
  --noheaders            只显示一次表头以后就不显示了,使用重定向写入文件时很有用
  --noupdate             disable intermediate updates
  --output file          写入到CVS文件中


你可能感兴趣的:(top,vmstat,查看系统资源(iostat,mpstat))