您的位置:首页 > 运维架构 > Linux

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

2011-10-23 23:50 811 查看
为什么我们要查看系统资源呢?

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

1,top命令查看cpu,mem的使用情况
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
21093 root      15   0 12700  736  524 S    2  0.0  80:01.36 cmahostd
1 root      15   0 10324   84   52 S    0  0.0   1:10.26 init
2 root      RT  -5     0    0    0 S    0  0.0   0:27.31 migration/0


%cpu 进程所占cpu时间的百分比

%mem 进程所占内存的百分比


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

3,top 后 在shift + m 所占内存的排序显示
PID USER      PR  NI  VIRT  RES  SHR S   %CPU %MEM  TIME+  COMMAND
11981 root      34  19  276m  43m 1452 S    0  1.1  64:22.57 yum-updatesd
2601 apacheus  15   0  413m  37m 5376 S    0  1.0   0:00.76 httpd
18833 apacheus  15   0  415m  36m 5908 S    0  0.9   0:01.49 httpd
18832 apacheus  15   0  415m  35m 5804 S    0  0.9   0:02.19 httpd
22881 apacheus  15   0  415m  35m 5924 S    0  0.9   0:01.62 httpd


4,vmstat 2 每隔2秒查看一下内存,交换分区,i/o,cpu的使用情况
[root@tank ~]# vmstat 2
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 182164 187684 708508 1997704    0    0     1     5    0    0  0  0 100  0  0
1  0 182164 187396 708508 1997708    0    0     0    36 1020 2203  0  0 99  0  0
0  0 182164 187708 708508 1997712    0    0     0   114 1056 2367  1  0 99  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工作时间的百分比


上面个人觉得比较重要的参数说明

5,df 查看磁盘的使用情况
[root@tank ~]# df
Filesystem    1K-blocks   Used    Available Use% Mounted on
/dev/sda2     39674192   7252020  30374288  20% /
/dev/sda3     49594196   8586164  38448076  19% /usr
/dev/sda4     59515556   6405700  50037828  12% /var


1K-blocks 总的磁盘大小

used 表示已使用了多少

available 表示还有多少空间可用

use% 磁盘的使用率


6,mpstat和sar查看cpu的运行情况,这二个差不多
[root@tank ~]# mpstat

11:38:39 AM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
11:38:39 AM  all    0.11    0.01    0.05    0.13    0.00    0.01    0.00   99.68     84.51


%user 用户所占的CPU时间百分比

%nice nice值为负进程的CPU时间百分比

%sys 系统内核所占cpu时间的百分比

%iowait i/o等待所占cpu时间的百分比

%idle cpu闲置时间的百分比

intr/s 每秒cpu的中断次数


7,free -m来查看内存,交换分区使用情况,如果不加-m的话,最小单位是KB
[root@tank ~]# free -m
total       used       free     shared    buffers     cached
Mem:          3823       3647        175          0        703       1945
-/+ buffers/cache:        998       2825
Swap:        24003        177      23825


total 表时总量是多少

used 已经使用了多少

free 还有多少空闲

shared 共享是多少

buffers 缓冲是多少

cached 缓存了多少


8,iostat查看磁盘i/o情况
[root@krlcgcms01 ~]# iostat -x 2
Linux 2.6.18-92.1.10.el5 (krlcgcms01)   12/10/2010

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
0.11    0.01    0.06    0.13    0.00   99.68

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
cciss/c0d0        0.21     7.78  0.44  3.00    12.13    86.31    28.63     0.03    7.68   3.39   1.17


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的单位为毫秒)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: