- 论坛徽章:
- 0
|
各位大虾:
最近开发老抱怨磁盘速度慢,我在业务期间,跑了一个小时的nmon,通过nmon analyze来分析disk的使用情况。
有些心得也有些疑问,与各位分享,也期待优化高手的答疑解惑。谢谢!
环境介绍:主机HP 460 G7通过4G的HBA卡连接到san switch,san switch连接到HP P2000的阵列上。
操作系统为redhat 5.7.阵列的磁盘为:2TB 6G SAS 7.2K 3.5in MDL HDD.
存储侧的划分11 disks raid5,1 disk hotspare. raid容量为20T,划分了3个lun,都镜像给该主机.(需要说明的是:该阵列也有一些其它的盘划分给别的主机)
主机侧看到的情况是:(安装的是hp multipath软件),用dd测试顺序写能力,吞吐量可以达到25-31MB/S
/dev/mapper/mpath2p1 15T 778G 13T 6% /sas
/dev/mapper/mpath0p1 2.1T 70G 1.9T 4% /database
/dev/mapper/mpath1p1 3.6T 380G 3.1T 11% /cdr
# dd if=/dev/zero of=/cdr/test.data bs=4k count=1000000
4096000000 bytes (4.1 GB) copied, 160.199 seconds, 25.6 MB/s
# dd if=/dev/zero of=/database/test123.data bs=4k count=1000000
4096000000 bytes (4.1 GB) copied, 132.294 seconds, 31.0 MB/s
# dd if=/dev/zero of=/sas/test123.data bs=4k count=1000000
4096000000 bytes (4.1 GB) copied, 141.783 seconds, 28.9 MB/s
回到nmon analyze的结果分析:
(sys_sum):部分
在1个小时内. read:write=1:65
Total number of Mbytes read:277
Total number of Mbytes written: 18,463
disk_summ:
max iops:3500
min iops:2000
(这里的疑问是:按照阵列和磁盘的能力,11块7.2K rpm的盘,假设单盘能支持的最大IOPS为100,那么11块盘=11×100=1100,这样远远无法达到3500的要求)
考虑到cache(4G)的能力,假设读命中率为30%,那么我们计算单盘的IOPS应该为:
单块盘的 max iops = (3500*(1-0.3)*0.015 + 4 * (3500*0.985))/11=1256.
假设以上结论成立的话,disk busy应该比较忙才对,但是从disk_busy的信息来看,并非如此。
以下为截图:
|
|