2011年10月5日(水) 23:06:33 @ Charlie

RamDisk 活用法

RamDisk に Oblivion の BSA ファイル入れたらやけにスムーズ。消して早くはないが、カクつきはなくなった。何にせよ、 MOD の FCOM が重過ぎる。

RamDisk 活用法 1 - Oblivion

16GB の RAM を積んだので、 10GB を RamDisk にした。ちなみにメモリは Max 使っても 3GB 程度だから、あと 2GB くらいは増やせそうだが、ゆとりを持たせるのも悪くない。

10GB のチョッ速テンポラリ領域に何をおくかと言えば、 oblivion の BSA ファイルだ。ってゲームかよ。

この BSA ファイルと言うのは、圧縮された (もしくは未圧縮の) ゲームデータの書庫ファイルと思って欲しい。しらねーよ? うん、もっともだw

とりあえず、これを RamDisk 領域に置くことで、ゲームがスムーズに動くようになるという。本当はフォルダごと RamDisk に置くのがいいのだが、容量足りず無念。必要な BSA ファイルだけ RamDisk に置くことにする。

簡単に流れを説明すると、以下のファイルが元ファイル。

  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Meshes.bsa
  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Textures - Compressed.bsa

これを RamDisk にコピーする。

  • z:\oblivion\Oblivion - Meshes.bsa
  • z:\oblivion\Oblivion - Textures - Compressed.bsa

HDD の方のファイル名を変更 (.ram をつける)。

  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Meshes.bsa.ram
  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Textures - Compressed.bsa.ram

HDD に RamDisk へのシンボリックリンクを作成。

※ C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Meshes.bsa のようなシンボリックリンクを作成する。ファイル名としては同じだが、実際は SYMLINK。その実体は RamDisk にある。

遊んでみた。 HDD のときはいちいち止まっていた読み込みバーが、 RamDisk にするとやけにスムーズだ。

広大なフィールドを Speed 250 で走り回ってみた。

読み込み時のカクツキは無くなったが、キャラクター変更 MOD の MBP2ch 入れてある弊害か、目がもの凄いことになっている。座標がずれた目のテクスチャが表示されちゃってるせいで、目の中に目が 2 つある。こういってみると「ふうん」で済むが、実際見ると結構グロイ。気持ち悪いとかじゃなく、グロイ。

目玉が 4 つあるならまだいいのだ。しかし、目の中に異形の目玉があるのが、これほどまでに生理的嫌悪感を抱かせるとは、寡聞にして知らなかった。知りたくもなかった。

これは、シンボリックリンクを作った日付が、キャラ MOD のファイルより新しくなってしまったせいで後から読み込まれ、データが Vanilla に戻ってしまっているせいらしい。

BSA に書庫されているファイル群のタイムスタンプでも、 RamDisk にコピーしたファイルのタイムスタンプでもないことに注意。

それが分かるまで試行錯誤したので、覚書として記事にすることにした。って、どっかで見たようなフレーズ。

Oblivion の BSA ファイルを RamDisk に移動させて遊ぶ
1. オリジナルファイルを RamDisk に配置
  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Meshes.bsa
  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Textures - Compressed.bsa

上記のファイルを RamDisk にコピーする。

  • z:\oblivion\Oblivion - Meshes.bsa
  • z:\oblivion\Oblivion - Textures - Compressed.bsa
2. オリジナルのファイル名変更
  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Meshes.bsa
  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Textures - Compressed.bsa

上記を、以下のファイル名にする (.ram をつける)。

  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Meshes.bsa.ram
  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Textures - Compressed.bsa.ram
3. シンボリックリンク作成

これが今回のキモ。

Windows7 で、シンボリックリンクそのもののタイムスタンプを変更することがどうやってもできなかった。ではどうするかというと、シンボリックリンクは日付を過去にして作る。

なんと乱暴な! しかしそれしかない。

おもむろに 2006/01/01 にタイムスリップ。コンパネにある日付と日時、だっけ? 右下の時計アイコンからも修正可能。戻すときが面倒なので、時間までは変更しない方がいいだろう。

次に、コマンドラインを管理者権限で実行。

CODE:
  1. mklink "C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Meshes.bsa" "z:\oblivion\Oblivion - Meshes.bsa"
  2.  
  3. mklink "C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Textures - Compressed.bsa" "z:\oblivion\Oblivion - Textures - Compressed.bsa"

Z:\oblivion\Oblivion - Meshes.bsa のシンボリックリンクが、
C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Meshes.bsa として作成される。

oblivion が上記 BSA を読み込みに行くと、リンク先の RamDisk のファイルを読み込むというわけ。

シンボリックリンクを作成したら、現代に戻ってくるのを忘れないこと。 2011年xx月xx日。

4. ゲームを楽しむ

こんな感じで、サイズの大きな奴をコピー対象にして、バッチファイル化しておくといいと思われ。

CODE:
  1. echo F | xcopy /D /R /Y "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Data\Oblivion - Textures - Compressed.bsa.ram" "z:\game\Oblivion - Textures - Compressed.bsa"
  2. echo F | xcopy /D /R /Y "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Data\Oblivion - Meshes.bsa.ram" "z:\game\Oblivion - Meshes.bsa"
  3. echo F | xcopy /D /R /Y "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Data\Fra - NewItems.bsa.ram" "z:\game\Fra - NewItems.bsa"
  4. echo F | xcopy /D /R /Y "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Data\Oblivion WarCry EV.bsa.ram" "z:\game\Oblivion WarCry EV.bsa"
  5. echo F | xcopy /D /R /Y "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Data\FCOM_Convergence.bsa.ram" "z:\game\FCOM_Convergence.bsa"
  6. echo F | xcopy /D /R /Y "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Data\FCOM_Convergence - MMM.bsa.ram" "z:\game\FCOM_Convergence - MMM.bsa"

※ それぞれのファイルのシンボリックリンクは、管理者権限で作っておくこと。

※ 再起動すると RamDisk のデータは消えるが、シンボリックリンクは消えないので、 Oblivion 起動前にこのバッチを一般権限で実行すれば OK。

※ 屋外では Voice 等の大きなファイルは関係ないと思ったので、対象外にしている

RamDisk の効果をニヤニヤしながら眺める。それにしても何を入れているか、すぐ分かる――正確には、分かる人には分かる。

5. 戻したくなったら

以下のシンボリックリンクを削除。

  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Meshes.bsa
  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Textures - Compressed.bsa

拡張子の .ram を消して、ファイル名を元に戻す。

  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Meshes.bsa.ram
  • C:\Program Files (x86)\Bethesda Softworks\oblivion\data\Oblivion - Textures - Compressed.bsa.ram

効果が分かったところで、他の大型 BSA 一式を RamDisk にコピーした。 CTD (クラッシュ) も少なくなって、嬉しい。

RamDisk 活用法 2 - Firefox

1. Firefox の設定を行なう

とりあえず、キャッシュを RamDisk 上に作成する設定を行なう。

about:config から、

browser.cache.disk.parent_directory を追加して、 z:\tmp とした。

これで、 Firefox 再起動後に RamDisk にキャッシュが作成される。

2. Firefox のディレクトリ名変更

C:\Program Files (x86)\Mozilla Firefox
というディレクトリを
C:\Program Files (x86)\Mozilla Firefox.ram
と名前変更。

3. Firefox を RamDisk 上で起動

firefox.bat を作成する。

CODE:
  1. echo D | xcopy /E /D /R /Y "C:\Program Files (x86)\Mozilla Firefox.ram" "z:\apps\Mozilla Firefox"
  2. mklink /d "C:\Program Files (x86)\Mozilla Firefox\" "z:\apps\Mozilla Firefox\"
  3. "z:\apps\Mozilla Firefox\firefox.exe"

1 回目だけ管理者モードで実行する。このとき、 Firefox が RamDisk から起動するが、とりあえず終了させる。

次回から firerox.bat を普通に W クリックすれば OK。

ちなみに、 1 回目を管理者モードで実行させるのは、
C:\Program Files (x86)\Mozilla Firefox
というシンボリックリンクを作るため。

今後は firefox.bat で Firefox を起動する。

4. 戻したくなったら

C:\Program Files (x86)\Mozilla Firefox
シンボリックリンクを削除した後、

C:\Program Files (x86)\Mozilla Firefox.ram を
C:\Program Files (x86)\Mozilla Firefox に名前変更すれば良い。

個人設定ファイルの場所は、 RamDisk に移動しなくてもいいかな。
再起動で消えちゃ敵わないし。
あとは、 AddOn とか入れたら、 RamDisk →
C:\Program Files (x86)\Mozilla Firefox.ram
にコピーする必要があるやも。

2011年10月2日(日) 23:34:23 @ Charlie

Windows7 (64 bit) 環境 RamDisk

Category : ramdisk / Tags :

お久しぶりです。半年ぶりの登場って、やまだかつてないかも。と思ったら 2008 年にあったわw

先日、メモリの価格を調べていたら、馬鹿みたいに安くなっていたことを知り、 16GB に増設することにした秋の思ひ出です。

SSD の信頼性

友人が SSD に OS を入れたらやけに速ぇーみたいなことを言ってきたのが事の始まりだった。

Crucial m4 CT128M4SSD2 は 1 万 5 千円程度でこれだけ速い。
Read : 415 MB/s
Write : 175 MB/s

他の人の CT128M4SSD2 ベンチマークを見ると、 CrystalDiskMark 3.0 の 1000MB でこれだけの速度を出している。

CT128M4SSD2 の大雑把なベンチマーク
テスト項目 Read [MB/s] Write [MB/s]
Seq 400 180
512K 360 180
4K 25 65
4K(QD32) 210 160

※ 4K 以外は 1 MB/s の単位で切り捨ててみたり
※ 他の人のベンチだしね

私の環境が、 ADAPTEC ASR-2405 ( RAID 1+0 ) 4 台構成 (実質 2 台で Raid0 の速さ ) で以下の通り。

ベンチマーク HDD (Raid10)

ベンチマーク HDD (Raid10)

4K(QD32) が HDD の NCQ(Native Command Queuing) を使ってのベンチになる。こちらの方が実際の使用感に近い数字になるようだ。

やはり SSD には敵わない。っていうか 100 倍かよ。強ぇな。

SSD 4 台にして RAID10 を組めば大分速くなるかなぁと思っていた時期もあった。しかし、以下の理由でキャンセルした。

  • SSD の寿命の短さ
  • SSD 64GB の書き込みの遅さ。かといって書き込みの速い 128GB を 4 台も仕入れるにはお金がかかりすぎる。
  • SSD に特化した RAID ボードがない。ないことはないが、品薄すぎてどうにも入手不可だし、 15 万くらいする。無理じゃね?

OS が入っている記憶媒体に、信頼性のない SSD は厳しいように思えた。決してお金がなくて悔しいわけではないw

オンボード RAID で SSD 2 台による RAID1 の構成も考えたが、ネックになるのはやはり信頼性だった。

昔懐かしい i-ram のようなものも考えたが、各社生産中止により、デバイスの入手が困難すぎてどうにもならない。

というわけで現状維持の結論に至ったわけだが、価格.com を調べていたときに、メモリの安さを知った。 16GB で 7 千円って、何?

RAM のベンチは SSD の 10 倍以上だ。テンポラリ用に RamDisk を作ってしまえば、あるアプリに関しては爆速気分を味わうことができるとあり、やってみることにした。

おもむろにメモリ増設。差し込み不具合で再起動 10 回ほど。
orz

で、いよいよ RamDisk を作成する段階になり、 Gavotte Ramdisk をインストールしたわけだが、やたら苦労する羽目になったので、覚書として記事を起こすことにした。

Windows7 (64bit) に Gavotte Ramdisk インストール

※ Windows7 は署名がついていないドライバーは機能しないという余計なお世話仕様がある。

※ Gavotte Ramdisk には署名がついていないが、 4GB 以上を Ramdisk にできるフリーソフトはこれしかないので、何とか使うしかない。

Windows 7 64bit 署名有無のドライバについて
ドライバ 通常起動 テストモード ブート時 F8
署名なし × ×
自己署名 ×
一般の署名

※ ブート時に F8 で起動することで、署名なしでもドライバが利用できるが、面倒すぎるので、自己署名 + テストモードで対応する。(Brue-Ray が再生できないとか不都合生じるらしいが、そんなの関係ねぇ)

※ SetupReadyDriverPlus を使えば F8 起動と同じ効果が得られるので、 Blue-Ray 再生も思いのままだが、セキュリティ的にやや危険な感じはする。しかも MBR 書き換えるし、どうなの。

Windows7 (64 bit) 環境で Ramdisk を使えるようになるまで

※ うまくいかなくても絶望しない

※ ググるのは基本

1. Gavotte Ramdisk をダウンロード

Cドライブ直下に GavotteRamdisk フォルダ作成

2. 自己署名の作成 & インストール

Windows7 SDK (.NET Framework4.0版) をインストールする

※ makecert 等の署名作成コマンドが揃っていれば、わざわざ SDK を入れる必要はない。

コマンドプロンプト(場合によって、管理者権限?) を開いてコマンド入力

CODE:
  1. cd c:\GavotteRamdisk\
  2.  
  3. makecert -sv rramdisk64.pvk -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -ss Root -len 1024 -sr localMachine -n CN="rramdisk64.sys" rramdisk64.cer
  4.  
  5. cert2spc rramdisk64.cer rramdisk64.spc
  6.  
  7. pvk2pfx -pvk rramdisk64.pvk -pi test -spc rramdisk64.spc -pfx rramdisk64.pfx
  8. ※ パスワード test にした

以上で rramdisk64.pvk が作成される。

rramdisk64.pvk を右クリック、インストール
証明書ストアは、「物理ストアを表示する」にチェック
[ 信頼されたルート証明機関\レジストリ ] を選択
パスワードは②で入力したもの (test)

3. Gavotte Ramdisk のインストール

コマンドプロンプトを管理者モードで実行。

bcdedit /set testsigning on
(off でテストモードをやめる)

Windows7 を再起動するとテストモードになる。

テストモードが有効になると、デスクトップ右下にウォーターマークが出てうざいことになるが、後で対処。

この辺のタイミングで、 ram4g.reg をダブルクリックしてレジストリに書き込みしておく。

ファイル名を指定して実行から hdwwiz でハードウェアの追加ウィザード
「一覧から選択したハードウェアをインストールする」
「すべてのデバイスを表示」を選択して「次へ」
「ディスク使用」をクリック
「製造元のファイルのコピー元」で rramdisk64.sys のあるフォルダを指定

4. Ramdisk の作成

c:\GavotteRamdisk\ramdisk.exe を右クリックして「管理者として実行」

※ ④の後に再起動してからやる必要があるかも? やれるならそのままやって構わないと思う。

Data Size : 10G と入力した。好みで。
Drive Letter : Z:
Media Type : Fixed Media

OK をクリックして再起動

5. Ramdisk の NTFS フォーマット

やけに時間がかかるようになった起動のあと、 Z ドライブを NTFS フォーマットする (マイコンピュータから Z を右クリックとかで)。

関係ないが、 Z ドライブの Volume は RamDisk にした。

6. デスクトップに出る「テストモード」のウォーターマーク除去

管理者権限のコマンドプロンプトから RemoveWatermarkX64.exe を実行し、 Y を押す。

再起動で消える。

Ramdisk のベンチマーク結果
ベンチマーク Memory

ベンチマーク Memory

Memory 増設時のいろいろで、 BIOS 初期化したまま、メモリのオーバークロックとかしていない状態。

SSD の 6 倍にはなった。まあ、容量少ないからテンポラリに使うくらいしかないのだが、 Firefox まるごと移動させて使えば結構おもしろいことになる。

■ 注意事項

テストモードを OFF にするには、コマンドプロンプトを管理者権限で実行して以下のコマンドを実行すればいい。

bcdedit /set TESTSIGNING OFF

ただし、再起動と同時に Gavotte Ramdisk が自己署名であることを見抜かれて強制的に削除される。

やたら時間がかかるシステム復旧のあと、直前に入れた SDK やらなにやらが消えてしまうこともありうる。何故か oblivion の MOD ファイルが消え、セーブデータがロードできなくなったときには殺意を覚えたが……

症状が軽ければ c:\GavotteRamdisk の実行ファイルやドライバが消えるだけで済むが、せっかく苦労して入れた GavotteRamdisk が削除されてしまうので、やらない方がいいだろう。そうだ、一生テストモードと付き合っていくのだ。

やるなと言われるとやりたくなる人間の心理

2010年3月13日(土) 23:24:37 @ Charlie

Pen4 と Corei7 環境でのベンチマーク比較

Category : Corei7

4 週間ほど前に注文していた RAID ボード ( ASR-2405 ) がようやく届いた。

お届け期間「 2010/2/27 - 2010/3/12 」の最終日前日に発送するとはやるじゃないの Amazon さん。

在庫ありだから遅くとも 2 週間程度で届くと思って注文したのに、 1 ヶ月もかかったら普通は怒るよ?

注文時に \25,000 だったのが、しばらくしたら \30,000 で売っていたことに関係ありそうな。キャンセルさせたかったのか?

3/12 Fri. 子狐ご飯

ひょんなことから、子狐ご飯というものを知った。細切りにした油揚げをだし汁で炊き込むシンプルな炊き込みご飯らしい。現物を見たことすらないのだが、その美味しそうなイメージに、ついうっかり作りたくなってしまった。

というわけで、 3/12(金) は、仕事が終わるや否や、油揚げを買って帰宅した。

90 分クッキング

米を洗ってざるに 30 分放置。その間、かつお節をたっぷり入れただし汁を作る。油揚げを湯通しして油抜きし、細切りにした。それらを、電子ジャーにまとめてぶち込む。塩も醤油も入れない。ただ、出汁と油揚げの味のみ。

食べてみた。キツネが喜びそうな味だった。なんとなくだが。

私好みの味でもあった。単品でいくらでも食べられる、というわけにはいかないが、白米にプラスアルファされた味覚が普通のご飯を食べるよりも食欲を増加させる。しかし猫は興味がない。

おかずは「こごみ」という「ぜんまい」みたいな山菜をついでに買ってきていたので、素揚げにして、塩を振った。

それだけ。こんなシンプルな夕食なのに、満足してしまう貧乏体質の私がいますよ。

去年初めて飲んだとき、こんな旨いビールは飲んだことがないと思ったシルクエビスだったが、今となってはイマイチに感じる。何でだ。

飲んでいたら RIAD ボードが届いた。酔っ払いなので作業できず、翌日へ持ち越し。

3/13 Sat. DVD ドライブ故障

※ SATA や SATA2.0 等と記述していますが、特に明記してなければ SATA は SATA2.0 を指していると思ってもらえると…

※ 理論値という言葉も同様に、転送速度の「有効速度 ( 80% 程度 ) 」は理論的には出せるはず、という意味だと思ってもらえると。

ケースをばらして RAID ボードを挿し、 HDD 4 台で RAID1+0 を構築。 M/B の BIOS でデバイスの起動順をリムーバブルディスク、DVD ドライブ、RAID の順に変更。

Windows7 の DVD を入れて起動。いよいよインストールである。 ASR-2405 の BIOS 起動がやけに長いのは仕様。

しばらくすると、メディアを入れろと催促される。あれ、 Windows7 の DVD は入ってるよ?

ASR-2405 との相性で DVD ドライブを認識しなくなったのかと RAID ボードを抜いてみるが、メディアをシークしている様子がない。 Windows7 の DVD 裏面には傷などないし、まさかドライブが…

仮の OS をインストールしている eSATA をつなげて、 Windows7 を起動。適当な DVD を読み込ませてみるが、どれも認識しない。

ついこの間、 OS インストールしたから、その後壊れたか。なんてピンポイントなんだ。

うつむき加減に TWO TOP に行って DVD ドライブ (LG SuperMulti GH24NS50) を購入してきた。
また散財……

それにしても、昔は、 DVD-RW ドライブの前身とも言える CD-RW ドライブといえば 5 万はした ( ものによっては倍 ) 。私が初代 CD-RW ドライブを購入したときで 3 万強、 2 代目となる DVD-RW ドライブが 1 万弱、それが今は \3,600 で買える。スゴスギ。

家に帰って取り付けようとしたら、ドライブの端子が SATA でビビった。 IDE じゃねーのかよ。

普通に考えれば SATA のドライブがない方が不自然なのだが、今まで SCSI と IDE しか使ってこなかったので、 SATA のドライブがあるということを考えたことすらなかった。 SATA はほとんど HDD 専用かと…

だが、問題はない。 P7P55D に SATA コネクタなどは腐るほど空いている。 黒っぽい SATA_E1 コネクタは eSATA で利用するっぽいので、使わない方が良さそうだ。 その下の SATA1 コネクタに接続。

RAID ボードを挿したまま、 OS インストールできた。

ベンチマーク

  • 旧環境である Pentium4 と RAID0+1
  • RAID ボードが届くまでのツナギの環境である Corei7 と SATA 1 台
  • 再構成後の環境である Corei7 と RAID1+0

上記の 3 つの環境でベンチマークを取ってみた。

A. Pentium4 + FASTTRAK S150 TX4 (RAID0+1)

【M/B】 ASUS P4P800-E DELUXE
【CPU】 Pentium 4 3.20EG Socket478 BOX
【MEM】 DIMM DDR SDRAM PC3200 512MB CL3 × 2
【VGA】 MATROX Millennium P650
【RAID】 PROMISE FASTTRAK S150 TX4 ( RAID0+1 )
【HDD】 Maxtor MaXLine 250GB × 2 と Hitachi 250GB × 2 の 計 4 台
【OS】 Windows XP Professional

FastTrak S150 TX4 では、旧規格の SATA ( 150 [MB/s] 。今は倍 ) を 4 台まとめて接続できるが、 RAID0+1 で組んでいるので、 2 台のストライピングと同じスピードになる。

SATA 並列書き込みの転送速度は 150 [MB/s] の 2 倍の 300 [MB/s] だが、 33MHz PCI バスの転送速度 133 [MB/s] がボトルネックとなり、有効速度の理論値は 133 [MB/s] で打ち止め。

Pen4 RAID0+1 のときに 100MB での Read/Write

100MB での Read/Write

Pen4 RAID0+1 のときに 1000MB での Read/Write

1000MB での Read/Write

Pen4 RAID0+1 のときに 2000MB での Read/Write

2000MB での Read/Write

平均すると、以下のようになる。

Read Write FileCopy 有効速度の理論値
86,192 [KB/s] 42,317 [KB/s] 9,763 [KB/s] 133 [MB/s]

Read ですら、理論値の 63% しか使っていない。この RAID ボードなら、 4 台でストライピングしたときに、 PCI バスのボトルネックに引っかかるかどうかと思われる。

B. Corei7 860 (SATA 1台)

【M/B】 Asus P7P55D
【CPU】 Core i7 860 Box
【MEM】 DDR3-12800 2GB × 2
【VGA】 ASUSTeK ENGTX260 ( GeForce GTX 260 )
【HDD】 Maxtor MaXLine 250GB 1 台
【OS】 Windows 7 Professional 64bit

SATA2.0 の転送速度は 300 [MB/s] で理論値も同じ。だが、実際それほど速度がでるわけもなく。

Corei7 SATA 1 台のときに 100MB での Read/Write

100MB での Read/Write

Corei7 SATA 1 台のときに 1000MB での Read/Write

1000MB での Read/Write

Corei7 SATA 1 台のときに 2000MB での Read/Write

2000MB での Read/Write

平均は以下の通り。

Read Write FileCopy 有効速度の理論値
48,398 [KB/s] 22,131 [KB/s] 1,523 [KB/s] 300 [MB/s]

A 環境 ( HDD 2 台で RAID0 ) の結果と比較すると、 Read も Write も約半分になっているのが分かる。このベンチマークが HDD 1 台での速度なのだろう。 Read は SATA2.0 ( 300 [MB/s] ) 理論値の 15% 、 Write は 7.2% にしかならない。

FileCopy は A 環境 ( HDD 2 台で RAID0 A ) の方が 6 倍ほど高くなっている。 FASTTRAK S150 TX4 の価値は FileCopy にしか見出せない。ソフトウェア RAID でも同じような結果は得られるだろうから。

B 環境は単純に SATA 1 台の速度を計っているが、ソフトウェア RAID などでストライピングをしたとしても、 HDD の台数が少ないと、 SATA 1 本分の有効速度の理論値にすら、迫ることができないような気がする。

ベンチの Read で計算すれば、 6 台束ねてようやくか。 CPU 負荷を考えるとやってられないなと思う。

ちなみに 4 台でソフトウェア RAID のストライピングを試したら 600 [MB/s] が出た……夢をみた。

ネゴトは寝てから。

どうでもいいが、 1000MB の場合の Draw ベンチ Rectangle が異常に高すぎる件が笑える。

C. Corei7 860 + ASR-2405 (RAID1+0)

【M/B】 Asus P7P55D
【CPU】 Core i7 860 Box
【MEM】 DDR3-12800 2GB × 2
【VGA】 ASUSTeK ENGTX260 ( GeForce GTX 260 )
【RAID】 ADAPTEC ASR-2405 ( RAID 1+0 )
【HDD】 Western Digital WD10EADS-M2B 1TB × 4 台
【OS】 Windows 7 Professional 64bit

P7P55D は 1 本しかない PCIExpress x16 バスをグラボに専有され、残る PCIe x4 バスにしょうがなく ASR-2405 が挿さっている。なお、 PCIe x4 の有効転送速度は 1 [GB/s] である。

一方、 SATA2.0 を RAID1+0 で 2 台並列に読み書きすることにより、転送速度 600 [MB/s] が理論値になるが、前のパターンとは逆に、 SATA がボトルネックとなり、 C 環境の理論値は 600 [MB/s] となる。 PCIe x4 で十分である。負け惜しみじゃないよ?

Corei7 RAID1+0 のときに 100MB での Read/Write

100MB での Read/Write

Corei7 RAID1+0 のときに 1000MB での Read/Write

1000MB での Read/Write

Corei7 RAID1+0 のときに 2000MB での Read/Write

2000MB での Read/Write

ちょっとブレが大きいんじゃないの? とりあえず平均すると次の通り。

Read Write FileCopy 有効速度の理論値
173,472 [KB/s] 255,563 [KB/s] 54,291 [KB/s] 600 [MB/s]

100MB 、 1000MB 、 2000MB の Read/Write を通してみると、 Read + Write の値が一定であることが見える。

ただの勘

良くは分からないが、 ASR-2405 では Read も Write も対して変わらない性能を発揮するのではないだろうか。 RAID ボードが高性能なだけにあり得る。

値の変化が激しい ( 下手したら倍になってる ) ので、とりあえず、最大値を叩き出した Write の 100MB を考える。

384,961 / 1,024 = 375 [MB/s]

これが 2 台のストライプなので、 4 台でストライプした日には、 750 [MB/s] のベンチになってしまうだろう。 4 台のときも、 PCIe x8 で動かさなくとも、 PCIe x4 ( 1 [GB/s] ) で十分対応できることになる。

また、最大値ではなく平均データの Write に注目したとしても 249 [MB/s] なので、十分速い。

ASR-2405 実測 Read/Write について

平均データの Read が 169 [MB/s] で Write が 249 [MB/s] となる。 Write に注目すると SATA 1 本分の 300 [MB/s] にも及ばないが、 2 台のストライピングで SATA 1 本弱の速度を得ていると考えると、かなり Good !

B 環境が Read 47 [MB/s] 、 Write 21 [MB/s] なので、平均 Read で 3.5 倍、平均 Write で 12 倍近い値を叩き出している。

PCIe x8 ではどうか

PCIe x8 は 2 [GB/s] の理論値をもつ。

これに ASR-5405 あたりで 8 台 の HDD で RAID0 を動かすと仮定すると、 SATA を 8 本束ねた速度が 300[MB/s] * 8 = 2.4 [GB/s] が理論値となる。

なお、 ASR-2405 の上位機種である ASR-5405 も PCIe x8 が最高速なので、 PCIe の方がボトルネックとなって 2 [GB/s] の速度が得られる。

ASR-2405 ですら、 2 台ストライピングして 375 [MB/s] が得られることが分かっている。

ASR-5405 の内部クロックは ASR-2405 の 1.5 倍の 1.2GHz 。単純に性能差を 1.5 倍として考えると、 2 台で 562 [MB/s] の速度が得られる計算だから、 8 台のストライピングで 2.19 [GB/s] くらいかな。

そう考えると、 ASR-5405 で HDD 8 台をストライピングして、なんとか有効転送速度の理論値に近づけるかどうかといったところか。

ASR-5405 の内部クロックがなんで 1.2GHz もあるのか不思議だったが、やっぱちゃんと考えて作られてるんだね。

本格的なハードウェア RAID ボードだけあって HDD ベンチは満足。 CPU も大分速くなった。

前回自作したときは 30 万くらいかかったが、今回は半分もいってない、と思いたい…

あと 5 年は持たせてみせる。

※ 忘れていたが RAID のブロックサイズはデフォの 256KB だった気がする。

Counter : Access
ログイン