web-dev-qa-db-ja.com

テストIO Linuxでのパフォーマンス

LinuxでIOパフォーマンスをテストするにはどうすればよいですか?

25
deeplovepan

IOとファイルシステムのベンチマークは複雑なトピックです。すべての状況に適したベンチマークツールはありません。さまざまなベンチマークツールに関する簡単な概要を次に示します。

ブロックストレージ:

  • IOMeter -高度にカスタマイズ可能で、複数のクライアントを調整できます。調整アプリケーション用のWindows PCが必要です。 Intelによって開発されました。 Linuxでは、提出方法が最適ではなかったため、少々少々古い(少なくとも2006.07.27以前)最大レートを使用します。

ファイルシステム(合成):

  • [〜#〜] ffsb [〜#〜] -柔軟なファイルシステムのベンチマーク。 Linuxの非常にきちんとしたベンチマーク。ワークロードの適切なカスタマイズ。 NFSベンチマーク(net-ffsb)は少し不健全です。
  • Filebench -非常に強力ですが、元はSolaris用に開発されました。 Linuxのサポートは良くありません。
  • sysbench-主にDBベンチマークツールですが、基本的なファイルシステムベンチマークツールでもあります。
  • bonnie -廃止されたようです。
  • bonnie ++ -ボニーのC++ポート。簡単ですが、あまりカスタマイズできないようです。

ファイルシステム(ワークロード):

  • 消印-メールサーバーのIOの動作をシミュレートします。ストレスが大きすぎるために小さすぎるIOシステム。

Stony Brook University およびIBM Watson Labsは、ファイルシステムベンチマークについての "Transaction of Storage" で、強く推奨されるジャーナルペーパーを公開しています。弱点: ファイルシステムとストレージのベンチマークに関する9年間の調査 。この記事は、ほとんどのベンチマークの結果が少なくとも疑わしいことを明確に指摘しています。


注:質問のプログラミングは関連していますか?そうではないかもしれませんが、そうかもしれません。私が開発したシステムのIOパフォーマンスのベンチマークに多くの時間を費やしています。少なくとも私にとっては、これらのベンチマークの方法についての質問はプログラミング関連性が高いです。他の開発者の視点は異なる場合があります。

35
dmeister

ツール:fio

リンク: http://freshmeat.net/projects/fio/

物理ディスクIOをテストします。

    ./fio examples/disk-zone-profile 

設定パラメーター:シーケンシャルr/w:rw = readまたはrw = write random r/w:rw = randreadまたはrw = randwrite

18
deeplovepan

何もインストールする手間をかけずに迅速な方法が必要な場合。これは、私が書き込み速度テストに使用する方法です。

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

Also:使用した余分なスペースを回復するために、この後にテストファイルを削除します

説明:

bs = block size
count = the no of blocks to be written

これらのパラメーターを調整して、サーバーの仕様に従って書き込まれるファイルのサイズと、書き込みに費やす時間を変更します。

読み取り速度 gtsoukで既に提案されているように、出力として/ dev/nullを使用して確認できます。

12
arkoak
dd if=/dev/sda of=/dev/null

これを数分間実行し、ctrl + Cで停止します。ドライブ/コントローラーの読み取り転送速度が出力されます。これは、ドライブから取得できる最大読み取り速度です。

7
gtsouk

シスベンチ

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/

3
bastiat

テスト対象を指定する必要があります。指定しないと、ベンチマークは誤解を招くだけです。 IOパフォーマンスの最適化のために選択する必要があるパフォーマンス、および再生するさまざまなパラメーターにはさまざまな側面があります。

システムパラメータ:

  1. ストレージデバイス:HDD、SSD(どれ?)、レイド(どれ?)
  2. ファイルシステム、ブロックサイズ、ジャーナルモード
  3. ファイルキャッシュ、ダーティしきい値、メモリ量
  4. IOスケジューラー、その調整可能パラメータ
  5. cPUの数
  6. カーネルバージョン

テストパラメータ:

  1. 読み取りまたは書き込みパフォーマンス?
  2. シーケンシャルまたはランダム?
  3. 1スレッドまたは複数?
  4. リクエストのサイズ
  5. スループットまたは要求の遅延を最適化しますか?
3
n-alexander

ブロックストレージをテストする優れたプログラムがありますIO。iorate.orgでコピーを入手できます。

階層型ストレージテストの再利用(ヒット)やホットゾーンなど、複雑な混合IOを生成できます。

3
John

IOzoneをご覧ください: http://www.iozone.org/

HPCクラスターでの実際の使用方法を示すホワイトペーパーをご覧になる場合は、36ページのこのpdfをご覧ください。 http://i.Dell.com/sites/content/business/solutions/hpcc/ ja/Documents/Dell-NSS-NFS-Storage-solution-final.pdf

2
bugaboo