M2NPV-VM の onBoard のPATAであるnForce 430MCPに4台のHDDを繋いで幾つかのベンチマークを取ってみた。
果たして、Chipset に組み込まれているIDEは早いらしいとか言うのは正しいのだろうか?
環境
毎度のこと検証環境は、
- Athlon64X2 3800+ (但し、Single CPUとして制限)
- M2NPV-VM(GeForce6150+nForce 430MCP)
- メモリは512M(カーネルパラメータで制限)
- システム用のHDDで Segate ST3500630AS, SATA
- Debian/etch Linux-2.6.16
- Seagate ST340015A, 40GB, PATA UDMA100, 2MBキャッシュ, 5400 rpm の4台
Chipset のサウスブリッジ 430MCPには、IDEインタフェースが組み込まれている。
# lspci -s 00:0d.0 -v 00:0d.0 IDE interface: nVidia Corporation MCP51 IDE (rev a1) (prog-if 8a [Master SecP PriP]) Subsystem: ASUSTeK Computer Inc. Unknown device 81c0 Flags: bus master, 66MHz, fast devsel, latency 0 I/O ports at f400 [size=16] Capabilities: [44] Power Management version 2
測定
測定は、md で下記構成のRAIDボリュームに対して、シーケンシャルなread/write の性能を 、bonnie++(1.03)を使い測定する。
- RAID0 のHDDx1台(1u)。
- RAID0 のHDDx 2 台(2u-2ch)。但し、IDEの2チャンネルにそれぞれにHDDを割り当てる。
- RAID0 のHDDx 2 台(2u-1ch)。但し、IDEの1チャンネルのみにHDDを割り当てる。
- RAID0 のHDDx 3 台(3u)。IDEの片方のチャンネルに2台で一方に1台を割り当てる。
- RAID0 のHDDx 4 台(4u)。IDEの両方のチャンネルに2台を割り当てる。
- linear のHDDx 4 台(4u)。IDEの両方のチャンネルに2台を割り当てる。
HDDの設定
4台のHDDは hdparm を使い、下記の様に設定。
# hdparm -d 1 -c 3 -m 16 -W 1 -tTi /dev/hda /dev/hda: setting 32-bit IO_support flag to 3 setting multcount to 16 setting using_dma to 1 (on) setting drive write-caching to 1 (on) multcount = 16 (on) IO_support = 3 (32-bit w/sync) using_dma = 1 (on) Model=ST340015A, FwRev=3.01, SerialNo=5LAJS1TX Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=unknown, BuffSize=2048kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=78165360 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 AdvancedPM=no WriteCache=enabled Drive conforms to: Unspecified: ATA/ATAPI-1 ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6 * signifies the current active mode Timing cached reads: 3936 MB in 1.99 seconds = 1973.79 MB/sec Timing buffered disk reads: 130 MB in 3.03 seconds = 42.97 MB/sec
ファイルシステム
RAIDボリュームは 標準的な ext3 に初期化した。
# dumpe2fs -h /dev/md0 dumpe2fs 1.39 (29-May-2006) Filesystem volume name:Last mounted on: Filesystem UUID: 8ba1a4a7-9a35-4a2a-994b-721745dbdb8b Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal resize_inode dir_index filetype needs_recovery sparse_super large_file Default mount options: (none) Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 19546112 Block count: 39081472 Reserved block count: 1954073 Free blocks: 38419937 Free inodes: 19546101 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 1024 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 16384 Inode blocks per group: 512 Filesystem created: Thu Sep 28 22:43:21 2006 Last mount time: Thu Sep 28 22:45:13 2006 Last write time: Thu Sep 28 22:45:13 2006 Mount count: 1 Maximum mount count: 25 Last checked: Thu Sep 28 22:43:21 2006 Check interval: 15552000 (6 months) Next check after: Tue Mar 27 22:43:21 2007 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 128 Journal inode: 8 Default directory hash: tea Directory Hash Seed: 9b620d96-95a0-48e6-9336-5d9cb21f847f Journal backup: inode blocks Journal size: 128M
測定コマンド
bonnie については、下記のコマンドを使用(/mntに対象ボリュームをマウント)。
# bonnie -u root -d /mnt -n 0 -f -b
結果
Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP 430MCP md-raid0(1u) 1G 37910 8 18697 3 47355 4 164.6 0 md-raid0(2u-2ch) 1G 75550 18 30762 6 85096 8 260.1 0 md-raid0(2u-1ch) 1G 32792 8 13865 2 28791 2 171.0 0 md-raid0(3u) 1G 51519 14 19736 4 42076 4 248.8 0 md-raid0(4u) 1G 78513 20 25605 5 50256 4 287.6 0 md-linear(4u) 1G 37635 8 18120 3 47276 4 168.8 0
- 2units(2channel)で明らかなRAID0性能向上の傾向がread/writeともに見られる。3units/4unitsは、RAID0性能向上の傾向が見られるが、2units(2channel)よりは性能向上は劣っている。
- 実際の2units(1channel)の性能は1unit比べてやはり劣化がある。
ほとんどITE8212/pass through mode の挙動と同じである。若干、3units/4units での性能向上が見られる。 やはり、IDEの1チャンネルに2台ぶらさがる事が並列化を妨げ「劣化」させる要因になっているようである。
結論
PATAでは1チャンネルに複数のデバイスをぶら下げるとRAIDの性能向上を妨げるので、1チャンネル1台にしよう。
0 件のコメント:
コメントを投稿