top - 16:15:05 up 6 days, 6:25, 2 users, load average: 1.45, 1.77, 2.14
Tasks: 147 total, 1 running, 146 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2% us, 0.2% sy, 0.0% ni, 86.9% id, 12.6% wa, 0.0% hi, 0.0% si
Mem: 4037872k total, 4003648k used,34224k free, 5512k buffers
Swap: 7164948k total, 629192k used, 6535756k free, 3511184k cached
查看12.6% wa
IO等待所占用的CPU时间的百分比,高过30%时IO压力高
其次、 用iostat -x 1 10
avg-cpu: %user %nice%sys %iowait %idle
0.00 0.00 0.2533.4666.29
Device:rrqm/s wrqm/s r/sw/s rsec/s wsec/srkB/swkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.000.00 0.00 0.000.000.00 0.00 0.00 0.00 0.000.000.00 0.00
sdb 0.00 1122 17.00 9.00 192.00 9216.0096.00 4608.00 123.79 137.23 1033.43 13.17 100.10
sdc 0.000.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.000.00 0.00 0.00
查看%util 100.10 %idle 66.29
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
idle小于70% IO压力就较大了,一般读取速度有较多的wait.
同时可以结合vmstat 查看查看b参数(等待资源的进程数)
vmstat -1
如果你想对硬盘做一个IO负荷的压力测试可以用如下命令
time dd if=/dev/zero bs=1M count=2048 of=direct_2G
此命令为在当前目录下新建一个2G的文件
我们在新建文件夹的同时来测试IO的负荷情况
$ free -m\x0d\x0a total used free sharedbuffers cached\x0d\x0a Mem: 1002769232 0 62421\x0d\x0a -/+ buffers/cache:286715\x0d\x0a Swap: 1153 0 1153\x0d\x0a 第一部分Mem行:\x0d\x0a total 内存总数: 1002M\x0d\x0a used 已经使用的内存数: 769M\x0d\x0a free 空闲的内存数: 232M\x0d\x0a shared 当前已经废弃不用,总是0\x0d\x0a buffers Buffer 缓存内存数: 62M\x0d\x0a cached Page 缓存内存数:421M\x0d\x0a 关系:total(1002M) = used(769M) + free(232M)\x0d\x0a 第二部分(-/+ buffers/cache):\x0d\x0a (-buffers/cache) used内存数:286M (指的第一部分Mem行中的used - buffers - cached)\x0d\x0a (+buffers/cache) free内存数: 715M (指的第一部分Mem行中的free + buffers + cached)\x0d\x0a 可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。\x0d\x0a 第三部分是指交换分区, 我想不讲大家都明白.\x0d\x0a 我想大家看了上面,还是很晕.第一部分(Mem)与第二部分(-/+ buffers/cache)的结果中有关used和free为什么这么奇怪.\x0d\x0a 其实我们可以从二个方面来解释.\x0d\x0a 对操作系统来讲是Mem的参数.buffers/cached 都是属于被使用,所以它认为free只有232.\x0d\x0a 对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。\x0d\x0a 所以,以应用来看看,以(-/+ buffers/cache)的free和used为主.所以我们看这个就好了.另外告诉大家一些常识.Linux为了提高磁盘和内存存取效率, Linux做了很多精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路 径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache能有效缩短了 I/O系统调用(比如read,write,getdents)的时间。\x0d\x0a 记住内存是拿来用的,不是拿来看的.不象windows, 无论你的真实物理内存有多少,他都要拿硬盘交换文件来读.这也就是windows为什么常常提示虚拟空间不足的原因.你们想想,多无聊,在内存还有大部分 的时候,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常 swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准哦.欢迎分享,转载请注明来源:夏雨云
评论列表(0条)