1 组网
操作系统:RedhatLinux 6.2 (64bit)
文件系统:ext4
IO分为直接IO和非直接IO。所谓直接IO是指读写文件不利用的文件系统高速缓存,直接从磁盘读取/存储数据。在调用open函数时,支持位O_DIRECT即直接IO。反之,读写文件要经过文件高速缓存的操作成为非直接IO,OS默认是这种操作方式。在进行测试的同时,利用iosat –xk命令查看IOPS,以及处理每个IO需要的时间。
2 测试结果
| C1 Raid10 -4磁盘 -1线程 | C2 Raid10 -4磁盘 -4线程 | C3 Raid5 -4磁盘 -1线程 | C4 Raid5 -4磁盘 -4线程 | C5 noRaid -1磁盘 -1线程 | C6 noRaid -1磁盘 -4线程 | C7 Raid10 -8磁盘 -1线程 | C8 Raid10 -8磁盘 -4线程 | C9 Raid5 -8磁盘 -1线程 | C10 Raid5 -8磁盘 -4线程 |
R1 顺序写10个10G文件 第一行MB/S | 140 | 230 | 40 | 40 | 70 | 70 | 180 | 260 | 20 | 50 |
892 | 2348 | 279 | 432 | 516 | 817 | 1132 | 2606 | 128 | 584 | |
1.54 | 6.28 | 6.23 | 25.88 | 3.18 | 14.10 | 1.20 | 6.00 | 15.22 | 20.52 | |
R2 随机写,blocksize=4k 第一行blocks/s | 500 | 1200 | 110 | 110 | 290 | 290 | 590 | 1560 | 25 | 120 |
2011 | 3486 | 464 | 314 | 1172 | 776 | 2362 | 4321 | 86 | 315 | |
0.61 | 0.86 | 2.46 | 10.40 | 0.98 | 4.16 | 0.51 | 0.67 | 13.32 | 10.28 | |
R3 随机读blocksize=4k 第一行blocks/s | 200 | 600 | 160 | 610 | 200 | 250 | 260 | 830 | 300 | 820 |
205 | 575 | 159 | 603 | 190 | 242 | 249 | 808 | 272 | 796 | |
4.85 | 7.08 | 6.22 | 6.62 | 5.21 | 16.54 | 3.99 | 5.14 | 3.63 | 5.03 | |
R4 随机读blocksize=1M 第一行blocks/s | 50 | 80 | 50 | 70 | 70 | 50 | 70 | 130 | 50 | 100 |
481 | 806 | 420 | 545 | 630 | 490 | 650 | 1296 | 433 | 839 | |
3.67 | 9.90 | 3.80 | 13.06 | 2.71 | 17.91 | 2.63 | 6.12 | 4.21 | 8.29 | |
R5(直接IO) 顺序写10个10G文件 第一行MB/S | 240 | 260 | 40 | 40 | 70 | 70 | 240 | 260 | 100 | 50 |
1215 | 1105 | 209 | 158 | 336 | 305 | 2395 | 1089 | 479 | 222 | |
1.25 | 2.99 | 6.84 | 21.82 | 4.40 | 11.43 | 0.51 | 3.44 | 3.00 | 15.46 | |
R6(直接IO) 随机写,blocksize=4k 第一行blocks/s | 600 | 1250 | 120 | 120 | 290 | 280 | 600 | 1500 | 120 | 120 |
2384, | 3498 | 469 | 316, | 1171 | 751 | 2388 | 4181 | 471 | 317 | |
0.51 | 0.82 | 2.45 | 9.59 | 0.98 | 4.00 | 0.51 | 0.67 | 2.44 | 9.54 | |
R7(直接IO) 随机读,blocksize=4k 第一行blocks/s | 210 | 630 | 250 | 590 | 220 | 240 | 240 | 780 | 270 | 800 |
210 | 634 | 246 | 592 | 214 | 240 | 244 | 780 | 272 | 799 | |
4.71 | 6.28 | 4.01 | 6.72 | 4.61 | 16.63 | 4.05 | 5.10 | 3.62 | 4.98 | |
R8(直接IO) 随机读,blocksize=1M 第一行blocks/s | 50 | 140 | 100 | 140 | 80 | 90 | 70 | 170 | 110 | 200 |
106 | 285 | 205 | 281 | 155 | 186 | 132 | 341 | 225 | 406 | |
18.18 | 27.26 | 9.15 | 25.90 | 11.09 | 41.16 | 14.54 | 22.84 | 7.83 | 18.65 |
注:红色部分利用IOPS(即iostat命令输出的r/s+w/s)。蓝色部分是处理每个IO花费的时间,这个时间包括了排队时间以及磁盘处理时间(即iostat命令输出的await)。
R1:非直接IO。顺序写10个10G文件,每次写1M。
R2:非直接IO。随机写,每次写一个block,每个block大写为4K。
R3:非直接IO。随机读,每次读一个block,每个block大写为4K。
R4:非直接IO。随机读,每次读一个block,每个block大写为1M。
R5:直接IO。顺序写10个10G文件,每次写1M。
R6:直接IO。随机写,每次写一个block,每个block大写为4K。
R7:直接IO。随机读,每次读一个block,每个block大写为4K。
R8:直接IO。随机读,每次读一个block,每个block大写为1M。