对Oracle数据库环境下的磁盘性能分析和测试.docx
对Oracle数据库环境下的磁盘性能分析和测试
IBM互联网服务器部 房树新秦宝军
1、 问题背景
某用户使用了多台IBMpSeries服务器作为其关键业务服务器,其中两台M85服务器(8CPU,8GB内存)连接IBM7133SSAT40磁盘阵列(16X36GBDisk)运行其主要对外业务,另外一台F85服务器使用PCI4-ChannelUltra3SCSIRAIDAdaper连接四块内置的36GB的磁盘,运行另外的业务。在日常运行中,系统管理人员发现F85的Oracle查询速度快于M85的Oracle查询速度,同时文件系统方式快于裸设备方式,为查明其原因,IBM工程师与CIECC系统管理人员做了如下的测试工作。
2、测试环境描述
M85服务器配置:AIXV433,ML09
OracleV9.0.1RACDatabase
8X750MHZCPU,8GBMemorySSA160Adapter
7133T40DiskArray:16X36GBDisk,形成两个RAID5磁盘(由8个36GB磁盘构成),分别在两个RAID5磁盘上建立了两个数据库卷组(VG),存放业务数据。
F85服务器配置:AIXV5.1,ML03
OracleV9.0.2Database
4X600MHZCPU,4GBMemory
4-ChannelUltra3SCSIRAIDAdaper
由内置4块36GB磁盘形成了一个RAID5磁盘,在此RAID5磁盘上建立了一个数据库卷组(VG),存放业务数据。
3、测试内容
测试内容一:数据库查询
选择实际应用中的一个528MB的表(CONT_TEST),不加任何索引,做同样的条件查询,使其做全表查询,比较I/O吞吐。数据库查询条件如下:
selectjkhth,ckhth,jkljzzfromcont_test wherehtpzzh=番外经加工
[2001]进核字第00279号;
我们分别在M85服务器和F85服务器上针对文件系统(jfs)与裸设备(rawdevice)两种方式进行了上述测试,测试结果如下:
第一次测试完成时间
AIXreboot,Oraclerestart
第二次测试完成时间
AIXnoreboot,在第一次基础上做查询
第三次测试完成时间
AIXnoreboot,在第二次基础上做查询
F85RAWDevice
18.62S
7.72S
7.72S
db_file_multiblock_read_count=16
DB物理读块数:66657
DISKIO:34MB/S
DB物理读块数:18758
DB物理读块数:18762
F85RAWDevice
17.34S
7.31S
7.32S
db_file_multiblock_read_count=64
DB物理读块数:66657
DISKIO:38MB/S
DB物理读块数:18792
DB物理读块数:18794
F85JFS
20.34S
4.82S
4.82S
db_file_multiblock_read_count=16
DB物理读块数:66657
DISKIO:34MB/S
DB物理读块数:18804
DB物理读块数:18805
F85JFS
20.81S
4.81S
4.84S
db_file_multiblock_read_count=64
DB物理读块数:66657
DISKIO:33MB/S
DB物理读块数:18816
DB物理读块数:18818
M85RAWDevice
31.24S
5.10S
5.11S
db_file_multiblock_read_count=16
DB物理读块数:66642
DISKIO:20MB/S
DB物理读块数:0
DB物理读块数:0
测试内容二:磁盘DD操作
从以上测试可见,M85的DISKIO只有20MB/S,而F85的DISKIO可达34MB/S,为确定磁盘是否是影响整个性能的瓶颈,我们决定使用AIX系统命令dd来评测两种服务器所连接的磁盘速度。
F85通过4-ChannelUltra3SCSIRAIDAdaper将内置4块36GB磁盘形成了一个RAID5磁盘hdisk1,M85通过SSA160卡形成两个loop,每个loop连接8个36GBDisk,形成两个RAID5磁盘hdisk2,hdisk3。我们分别使用下列命令读取其磁盘上的裸设备rtest:
ddif=/dev/rtesto