Linux で IO パフォーマンスをテストするにはどうすればよいですか?
8 に答える
IOとファイルシステムのベンチマークは複雑なトピックです。すべての状況で優れた単一のベンチマークツールはありません。さまざまなベンチマークツールの概要は次のとおりです。
ブロックストレージ:
- IOMeter-高度にカスタマイズ可能で、複数のクライアントを調整できます。調整アプリケーションにはWindowsPCが必要です。Intelによって開発されました。Linuxでは、提出方法が最適ではなかったため、塩のピンチで古い(少なくとも2006.07.27以前)の最大レートを取ります。
ファイルシステム(合成):
- FFSB-柔軟なファイルシステムベンチマーク。Linuxの非常に優れたベンチマーク。ワークロードの適切なカスタマイズ。NFSベンチマーク(net-ffsb)は少し不健全です。
- Filebench-非常に強力ですが、元々はSolaris用に開発されました。Linuxのサポートは良くありません。
- sysbench-主にDBベンチマークツールですが、基本的なファイルシステムベンチマークツールでもあります。
- bonnie-廃止されたようです。
- bonnie++ -bonnieのC++ポート。簡単ですが、あまりカスタマイズできないようです。
ファイルシステム(ワークロード):
- 消印-メールサーバーのIO動作をシミュレートします。小さすぎて、優れたIOシステムにストレスを与えることはできません。
StonyBrookUniversityとIBMWatsonLabsは、ファイルシステムのベンチマークに関する「ストレージのトランザクション」で強く推奨されるジャーナルペーパーを公開しました。ここでは、さまざまなベンチマークとその長所と短所を示しています。ファイルシステムとストレージのベンチマークに関する9年間の調査。この記事は、ほとんどのベンチマークの結果が少なくとも疑わしいことを明確に指摘しています。
注:質問のプログラミングは関連していますか?多分そうではないかもしれませんが、多分そうです。私は、開発するシステムのIOパフォーマンスのベンチマークに多くの時間を費やしています。少なくとも私にとって、これらのベンチマークを行う方法に関する質問は、プログラミングに大きく関係しています。お願い:あなたの観点から、開発/プログラミングに関連しないすべての質問を閉じないでください。他の開発者の視点は異なる場合があります。
ツール: フィオ
リンク: http://freshmeat.net/projects/fio/
物理ディスク IO をテストします。
./fio examples/disk-zone-profile
パラメータの設定: 順次 r/w: rw=読み取りまたは rw=書き込み ランダム r/w: rw=randread または rw=randwrite
何かをインストールする手間をかけずに簡単な方法が必要な場合。これは、書き込み速度テストに使用する方法です。
dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
そして、出力は次のようなものです
root@rackserver:/# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 4.86922 s, 221 MB/s
また: この後にテストファイルを削除して、使用された余分なスペースを回復します
いくつかの説明:
bs = block size
count = the no of blocks to be written
これらのパラメーターを調整して、サーバーの仕様に従って書き込まれるファイルのサイズと、書き込みに費やす時間を変更します。
gtsouk によって既に提案されている読み取り速度は、出力として /dev/null を使用して確認できます。
dd if=/dev/sda of=/dev/null
これを数分間実行し、ctrl+Cで停止します。ドライブ/コントローラの読み取り転送速度が出力されます。これは、ドライブから取得できる最大読み取り速度です。
シスベンチ
http://www.howtoforge.com/how-to-benchmark-your-system-cpu-file-io-mysql-with-sysbenchを参照してください
例
sysbench --test=fileio --file-total-size=150G prepare
sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
また、CPU、メモリ、スレッド、およびデータベース サーバーのパフォーマンスをテストすることもできます。
それは素晴らしいです。
または Java で書かれたソフトウェアのテスト: http://www.dacapobench.org/
テスト対象を指定する必要があります。そうしないと、ベンチマークが誤解を招くだけになります。最適化するために選択する必要がある IO パフォーマンスのさまざまな側面と、操作するさまざまなパラメーターがあります。
システム パラメータ:
- ストレージデバイス: HDD、SSD (どれ?)、Raid (どれ?)
- ファイルシステム、ブロックサイズ、ジャーナルモード
- ファイル キャッシュ、ダーティしきい値、メモリ量
- IO スケジューラ、その調整可能変数
- CPU数
- カーネルのバージョン
テスト パラメータ:
- 読み取りまたは書き込みのパフォーマンス?
- シーケンシャルまたはランダム?
- 1 つのスレッドまたは複数のスレッド?
- リクエストのサイズ
- スループットまたはリクエストの遅延を最適化しますか?
IORATE と呼ばれる、Unix でブロック ストレージ IO をテストするための優れたプログラムがあります。コピーは iorate.org で入手できます。
再利用 (ヒット) や階層型ストレージ テスト用のホット ゾーンなど、複雑な混合 IO を生成できます。
IOzone を見てみましょう: http://www.iozone.org/
HPC クラスターでの実際の使用法を示すホワイトペーパーを読みたい場合は、この PDF の 36 ページを参照してください: http://i.dell.com/sites/content/business/solutions/hpcc/en/Documents/ Dell-NSS-NFS-Storage-solution-final.pdf