ソフトウェアRAIDパフォーマンスの比較テスト。 Linux vs FreeBSD(mdadm vs gmirror)

はじめに

私は、さまざまなVSに関して長い間意見を述べてきました-それはすべてタスクに依存しています。 しかし、いやいや、いや、もっと深く掘り下げて、誰がまだ強いのかを見つけたいという欲求があります-ブルース・リーかジャッキー・チェン、スタローンかシュワルツェネッガー、mdadm、gmirror。

このテストは絶対的な客観性を主張するものではなく、むしろ、使用されるハードウェアの観点から主観的なものです。 とにかく、数字は数字です。

興味のある方は、猫の下に来てください。





テストスタンド

マザーボード:ECS 865GV-M

プロセッサー:Intel®Celeron®CPU 2.00GHz

HDD 1(システム):SATA-II 160Gb Western Digital WD1600AAJS(マザーボードに接続)

HDD 2.3(RAID):SATA-II 1.5Tb Western Digital [WD15EARS](Promiseに接続)

SATAコントローラー:Promise SATA300 TX4 PCI、4ポートSATA300

RAM:1280Mb

*それは神がどのような構成を知っているかではありませんが、彼らが言うように、彼らが豊かであるほど、彼らは喜んでいます。



開始する

テストで使用されたユーティリティに関する情報:

ボニー++

名前が示すように、 Bonnie ++は Bonnieベンチマークに基づいています。 ファイル操作には多くの異なる種類があり、異なるプログラムはそれらを異なる方法で使用します。 Bonnie ++はそれらのいくつかをテストし、各テストの結果を表示します。 GPL2ライセンスの下で配布されます。

テストには2つの操作セクションがあります。 1つ目は、一部のデータベースアプリケーションの動作をモデル化するIOテストです。 2つ目は、多数の小さなファイルを作成、読み取り、削除するテストです。

ウェブサイト: www.coker.com.au/bonnie++

イオゾン

IOzoneは、ファイルシステムの速度を測定するためのコンソールユーティリティです。 読み取り、書き込み、再読み取り、再書き込み、逆方向読み取り、読み取りストライド、fread、fwrite、ランダム読み取り、pread、mmap、aio_read、aio_writeなどの操作の速度をテストします。 結果はファイルに表示され、そのデータはExcelでのグラフ作成に使用できます。

ウェブサイト: www.iozone.org

DD

読者はこの素晴らしいツールに精通していると思うので、Wikiを引用することに限定します。

「Dd(データセット定義)は、ファイルのコピーと変換の両方のために設計されたUnixプログラムです。」



テスト済みのOS:

1. FreeBSD 8.0リリースi386

2.Debian Lenny 5.0.5 i386



準備する

FreeBSD:



#gmirror load



#gmirror label -v gm0 /dev/ad6 /dev/ad10

UFS + Soft Updates

#newfs -U /dev/mirror/gm0



#mkdir /raid



#mount /dev/mirror/gm0 /raid






Linux:



debian:/home/iam# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd[bc]1

mdadm.conf

debian:/home/iam# mdadm --detail --scan >> /etc/mdadm/mdadm.conf

EXT3

debian:/home/iam#mkfs.ext3 /dev/md0



debian:/home/iam#mkdir /raid



debian:/home/iam#mount /dev/md0 /raid








行こう(s)

Bonnie ++は最初に戦闘に参加し、デフォルト設定で実行します

# bonnie++ -d /raid/ -m 'FREEBSD_gmirror' -u root > out.csv && cat out.csv | bon_csv2html > gmirror.html





キーについて:

-d:一時ファイルを作成するディレクトリをプログラムに指示しました

-m:レポートのタイトル

-u:実行者

次に、プログラムの出力をfile> out.csvにリダイレクトし、次にbon_csv2htmlを使用して、人間が読めるhtmlに変換しました。

結果:

freebsd

画像

Linux

画像

freebsd

画像

Linux

画像



*私は認めます、Linuxでは読めるHTMLを取得できなかったので、FreeBSDからのHTML結果を修正しました

スクリーンショットには、チームの結果が表示されています。順番に行きましょう。

サイズ2512M -RAM * 2

シーケンシャル出力シーケンシャル入力

1文字あたり

これらは、1バイトの読み取りの結果です。 そのような操作をバッファリングするOSの機能を示します。

ブロックする

サイズが8192バイトの読み取り/書き込みブロック。

書き換える

説明は不要だと思う

ランダムシーク (ランダム読み取り操作)

Seeks-ランダム読み取り操作の数

シーケンシャル作成

ランダム作成 (ランダム/ランダムファイル作成)

+++文字で埋められた行だけが読者に理解できないようになったと思います-テストが非常に早く完了したため、プログラムは結果を表示できません。



次に、プログラムにいくつかの指示を追加します

# bonnie++ -d /raid/ -m 'FREEBSD_gmirror' -n 100:16384:0:20 -u root > out.csv && cat out.csv | bon_csv2html > gmirror_1.html





-n100:16384:0:20​​:20のサブディレクトリにサイズが0から16384 bまでの100個のファイルを作成します

結果:

freebsd

画像

Linux

画像

freebsd

画像

Linux

画像

*注意深い読者は、プログラムのバージョンの違いに気付くでしょう。 さて、ports / repositoriesで利用可能な最新のものを置いてください。



ヴァボディ:

ご覧のように、プログラムの結果はより良い知覚のために壊れています。 デフォルトの設定でプログラムを実行することを無視し、最後の4つのスクリーンショットに焦点を当てます。

シーケンシャル出力

「バイト単位の」Per Char Linuxテストでわかるように、それは非常に高速であるため、169 KB / sのFreeBSDはブートプロセスに到達することさえできません。 Linuxで22183 KB / s対FreeBSDで169 KB / s。 CPU使用率は最小限です。

レコードサイズが8192 Bのテストでは、FreeBSDがほぼ2倍のマージンで勝ちます。 FreeBSDで48840 KB /秒、Linuxで28895 KB /秒。 しかし、FreeBSDはCPUを2倍ロードしました。

Rewriteテストは、FreeBSDで23306 KB / sとLinuxで18529 KB / sのわずかな違いを示しました。 ここから、テストされたOSのキャッシュメカニズムの効果はほぼ等しいと結論付けることができます。

順次入力

ここで、勝利は明らかにLinuxにとってのものです。 FreeBSDではCharあたり350 KB /秒、Linuxでは26435 KB /秒。 8192 bのブロック、67290 KB / s FreeBSD対Linuxの86610 KB / s。

ランダムシーク (ランダム読み取り操作)

Linuxはこのテストで優勝しました。FreeBSDでは165.1秒、Linuxでは148.5秒です。



最後の2つのスクリーンショットに移りましょう

シーケンシャル作成

このテストでは、ファイルを順次作成、読み取り、削除します。 0〜16 KBの任意のサイズの20個のサブディレクトリに100個のファイルを作成することを読者に思い出させてください。

速度は1秒あたりのファイル数で測定されます。 LinuxのFreeBSD 103ファイル/秒と3099ファイル/秒の作成では、CPU負荷にも注意してください。 読み取り、FreeBSDでは1556ファイル/秒、Linuxでは34204ファイル/秒。 FreeBSDから12206ファイル/秒を削除するのに対し、Linuxから14121ファイル/秒を削除します。 Linuxは、追求者からの大きなマージンをもって、フィニッシュラインを引き裂きます。

ランダム作成 (ランダム/ランダム作成)

そして、ここでLinuxは議論の余地のないリーダーです。 作成、FreeBSD 100ファイル/秒とLinux上の20187ファイル/秒。 読み取り、FreeBSDでは166ファイル/秒、Linuxでは3299ファイル/秒。 FreeBSDから9139ファイル/秒を削除するのに対し、Linuxから11638ファイル/秒を削除する



Bonnie ++の結果を要約すると、いくつかの例外を除いて、Linuxが地滑りに勝ったことがわかります。 多数の小さなファイルを作成する操作は、FreeBSDよりも何倍も高速です。 しかし、最終的な結論に急がないように読者に助言します。すべてがそれほど明白ではありません。 どうぞ



bonnie ++を使用して 、これを終了し、次のツールであるIozoneに進みます。

ドキュメントを読んだ後、さまざまなスタートアップキーで十分に遊んだ後、このコマンドが生まれました。

# iozone -Raz -b /home/iam/results_all.xls -f /raid/1 -g 1g





*実際、私は不誠実で、プログラムのウェブサイトのテスト結果でチームを見張っています))

キーについて:

-R:レポートファイルを作成するようにプログラムに指示します

-a:全自動モード、記録サイズは4kから16mまで自動的に選択されます(4k..8k..16k..32k .... 16384k)

-f:配列上のファイルを指定します

-g:最大ファイルサイズは1Gb(-aモードの場合)

-z:自動モードで起動されたプログラムは、大きなファイルに対して小さな記録サイズを使用するように強制します(4kから16m(4k..8k..16k..32k .... 16384k))



わかりやすくするために、結果をグラフで示します。 指定されたキーを使用して、プログラムは非常に重要なレポートファイルを作成します。私の意見では、最も興味深い結果を強調したグラフに表示します。

最初は録音テストです。

画像

画像

画像

最初のチャートに表示された結果は、FreeBSDにチャンスを与えません。 4キロバイトから16メガバイトのブロックで16Mbファイルを作成する場合、Linuxの平均値は〜204 MB / s、FreeBSD 44.7 MB / sです。

サイズが128 MBのファイルで、ブロックサイズが128 KBに達すると、画像が劇的に変化し、FreeBSDは自信を持って前進します。 平均値は、Linux〜47.8 MB / s、FreeBSD 48.3 MB / sです。

1Gbファイル。 FreeBSDは、以前の2つのファイルと同じ速度を保持します。 一方、Linuxは大幅に減速しました。 平均値は、Linux〜33 MB / s、FreeBSD 48.5 MB / sです。

既にお気づきのとおり、小さなファイルでわかるように、Linuxははるかに高速に処理します。 1Gbファイルでは、FreeBSDは復venを果たします。 また、FreeBSDがファイルサイズに関係なく同じ速度に耐えられることも重要です。



リストの次のものは読んでいます。

画像

画像

画像

引き裂いて、ファイルサイズを16 Mbにします。 競合他社はほとんど体から体に行きます。

平均値:Linux〜534 MB / s、FreeBSD〜538 MB / s

ファイル128 Mb。 Linuxは精製から始まりますが、すでに64 KBのチェックポイントで、相手が追いつき、激しい戦いが始まります。 平均値:Linux〜515 MB / s、FreeBSD〜380 MB / s。

私たちのヘビー級に達して、テストされたOSは最初は揺れ動きます。

ファイルサイズ1Gb。 ご覧のように、FreeBSDが開始時に煙を飲み込むと、ギャップが生じます。速度は1Gb / sに達します。 チェックポイント(128KBのブロックサイズで開始)の後、FreeBSDはリーダーにわずかに遅れをとってテールを保持します。 平均値:Linux〜553 MB / s、FreeBSD〜369 MB / s。

Linuxは、読み取り速度がFreeBSDよりもはるかに高速です。 ファイルサイズに関係なく。



ランダム(ランダム)記録

画像

画像

画像

ファイル16 Mb。 結果はそれ自体を物語っています。Linuxでは滑らかな曲線が見られ、FreeBSDは1Mbチェックポイントの後、ピットストップのために何かを残し、やっとフィニッシュラインに到達します。 平均結果:Linux〜356.8 MB / s、FreeBSD〜255.5 MB / s

ファイル128 Mb。 FreeBSDはどうやらうまくいかず、気のめいるような結果を見せており、Linuxも8 MBと16 MBのブロックサイズの違いが目立ちます。 平均結果:Linux〜6 MB / s、FreeBSD〜3.8 MB / s。

ファイル1 Gb。 大きなファイルを順番に作成するのと同様に、FreeBSDは着実に前進しており、Linuxは最終段階に達しています。 平均結果:Linux〜12 MB / s、FreeBSD〜26 MB / s



ランダム(ランダム)読み取り

画像

画像

画像

最初のチャートであるLinuxはほんの少し進んでいますが、すでに32 KBのチェックポイントに追い抜かれています。 さらに、ライバルは、FreeBSDの非常にわずかな利点でフラッシュしました。 平均結果:Linux〜523 MB / s、FreeBSD〜458 MB / s。

128 Mbファイルのテスト結果の図は、最初のものとほとんど変わりません。唯一の違いは、64 KBのブロックサイズから明らかなリーダーがいないことです。 平均結果:Linux〜476 MB / s、FreeBSD〜362 MB / s。

最後のグラフは、大きなファイルサイズを読み取る際にLinuxが最前線からはほど遠いことを明確に理解するものです。 平均結果:Linux〜523 MB / s、FreeBSD〜274 MB / s。



終わりに向かって、テスト結果はすべて既知のDDユーティリティです。

4 KBブロックから1 Gbファイルを作成します

FreeBSD:49.02 MB / s

Linux:23.9 MB / s

このファイルを4 KBのブロックで読み取ります

FreeBSD:342.7 MB / s

Linux:788 MB / s



64 KBブロックから1 Gbファイルを作成します

FreeBSD:48.64 MB / s

Linux:35.0 MB /秒

このファイルを64 KBブロックで読み取ります

FreeBSD:350.14 MB / s

Linux:617 MB /秒



1 Mbブロックから1 Gbファイルを作成します

FreeBSD:47.98 MB / s

Linux:23.9 MB / s

このファイルを4 KBのブロックで読み取ります

FreeBSD:348.51 MB / s

Linux:460 MB /秒



サイズ100 Mbのブロックからサイズ1000 Mbのファイルを作成します

FreeBSD:44.24 MB /秒

Linux:37.7 MB / s

このファイルを4 KBのブロックで読み取ります

FreeBSD:308.61 MB / s

Linux:459 MB /秒



1 Gbブロックから100 Gbファイルを作成します

FreeBSD:31.7 MB / s

Linux:14.7 MB /秒

このファイルを4 KBのブロックで読み取ります

FreeBSD:57.48 MB / s

Linux:結果を取得できませんでした



ファイルを作成するとき、FreeBSDはLinuxより明らかに高速です。 Linuxはファイルの読み取りがより強力です。



Ddリスト

Freebsd

*読みやすさのためにFreeBSDのdd出力を修正しました

1Gb 4k

# /usr/bin/time -h dd if=/dev/zero of=testfile bs=4k count=262144

262144+0 records in

262144+0 records out

1073741824 bytes transferred in 20.888121 secs (49,02 Mbytes/sec)

21.05s real 0.45s user 11.12s sys

4k

*

# /usr/bin/time -h dd if=testfile of=/dev/null bs=4k count=262144

262144+0 records in

262144+0 records out

1073741824 bytes transferred in 2.987966 secs (342,7 Mbytes/sec)

2.99s real 0.15s user 2.82s sys



# /usr/bin/time -h dd if=/dev/zero of=testfile bs=64k count=16384

16384+0 records in

16384+0 records out

1073741824 bytes transferred in 21.050771 secs (48,64 Mbytes/sec)

21.05s real 0.08s user 8.12s sys

# /usr/bin/time -h dd if=testfile of=/dev/null bs=64k count=16384

16384+0 records in

16384+0 records out

1073741824 bytes transferred in 2.924540 secs (350,14 Mbytes/sec)

2.92s real 0.05s user 2.86s sys



# /usr/bin/time -h dd if=/dev/zero of=testfile bs=1m count=1024

1024+0 records in

1024+0 records out

1073741824 bytes transferred in 21.341423 secs (47,98bytes/sec)

21.57s real 0.00s user 7.87s sys



# /usr/bin/time -h dd if=testfile of=/dev/null bs=1m count=1024

1024+0 records in

1024+0 records out

1073741824 bytes transferred in 2.938155 secs (348,51 Mbytes/sec)

2.94s real 0.00s user 2.92s sys



# /usr/bin/time -h dd if=/dev/zero of=testfile bs=100m count=10

10+0 records in

10+0 records out

1048576000 bytes transferred in 22.601393 secs (44,24 Mbytes/sec)

22.86s real 0.00s user 7.89s sys



# /usr/bin/time -h dd if=testfile of=/dev/null bs=100m count=10

10+0 records in

10+0 records out

1048576000 bytes transferred in 3.240300 secs (308,61 Mbytes/sec)

3.26s real 0.00s user 3.25s sys



# /usr/bin/time -h dd if=/dev/zero of=testfile bs=1g count=100

100+0 records in

100+0 records out

107374182400 bytes transferred in 3229.788959 secs (31,7 Mbytes/sec)

53m50.33s real 0.00s user 14m40.89s sys

# /usr/bin/time -h dd if=testfile of=/dev/null bs=1g count=100

100+0 records in

100+0 records out

107374182400 bytes transferred in 1781.360638 secs (57,48 Mbytes/sec)

29m41.67s real 0.00s user 6m44.73s sys








Linux

debian:/raid# dd if=/dev/zero of=testfile bs=4k count=262144



262144+0



262144+0



1073741824 (1,1 GB), 45,0159 c, 23,9 MB/c



debian:/raid# dd if=testfile of=/dev/null bs=4k count=262144



262144+0



262144+0



1073741824 (1,1 GB), 1,36295 c, 788 MB/c



debian:/raid# dd if=/dev/zero of=testfile bs=64k count=16384



16384+0



16384+0



1073741824 (1,1 GB), 28,2238 c, 38,0 MB/c



debian:/raid# dd if=testfile of=/dev/null bs=64k count=16384



16384+0



16384+0



1073741824 (1,1 GB), 1,73935 c, 617 MB/c



debian:/raid# dd if=/dev/zero of=testfile bs=1M count=1024



1024+0



1024+0



1073741824 (1,1 GB), 30,711 c, 35,0 MB/c



debian:/raid# dd if=testfile of=/dev/null bs=1M



1024+0



1024+0



1073741824 (1,1 GB), 2,33447 c, 460 MB/c



debian:/raid# dd if=/dev/zero of=testfile bs=100M count=10



10+0



10+0



1048576000 (1,0 GB), 27,8344 c, 37,7 MB/c



debian:/raid# dd if=testfile of=/dev/null bs=100M count=10



10+0



10+0



1048576000 (1,0 GB), 2,28437 c, 459 MB/c



debian:/raid# dd if=/dev/zero of=testfile bs=1024M count=100



100+0



100+0



107374182400 (107 GB), 7315,88 c, 14,7 MB/c



debian:/raid# dd of=testfile if=/dev/null bs=1024M count=100



0+0



0+0



0 (0 B), 7,5694e-05 c, 0,0 kB/c








エピローグ

私がすでに書いたように、テストを実施するというアイデアは自発的に生まれました。 最初は、予算のマシンでバックアップ用のソフトウェアRAIDを構築したかったのですが、それからこのVS彼の母親になりました。 私にとって、選択は明白です-FreeBSD、ファイルを作成するとき、特に大きなファイルを作成するとき、それはより高速です。 ちょうど私が必要なもの。 このテストを完了した後、私はもう一度、さまざまなヒイラギ戦争に関する立場の正しさを確信しました。それはすべてタスクに依存します。

繰り返しますが、私は全体の真実に同意しません。 FreeBSDを支持する選択は、テストの前に行われました。 私はこのOSをLinuxよりもずっとよく知っているので、私はそれがもっと好きです。 結果を客観的に見ると、Linuxに勝利することは絶対に値します。 繰り返しになりますが、テスト結果を確認した結果、疑いの余地はありません。

誰がこれらのテストにそれほど悩まされたのか、ボニー++が既にすべてを語ったのに、誰もが正しく気付くことができますが、そうではありません。 私はすべてを思慮深く、感覚と感覚を持ってアプローチすることに慣れています。 はい、表示された空き時間により、実験することができました。

私の報告書があなたにとってどの程度有能で有益なものであるかを決めるのは、私は* nixの専門家ではありません;この魅力的な世界への私の道は比較的最近始まりました。

マスターした人に感謝します。



PS

使用する材料を準備するには:

1. Linux管理者ガイド。 著者:Nemeth E.、Snyder G.、Trent H.

2. FreeBSD。 詳細ガイド。 マイケル・ルーカス

3. google.com

4. / dev / handsおよび/ dev / head =)

このレポートは、unixadmins.suの仲間の積極的な支援を受けて作成されました。



All Articles