゜フトりェア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の仲間の積極的な支揎を受けお䜜成されたした。

Source: https://habr.com/ru/post/J98649/


All Articles