tmpfs
tmpfsとは
メモリファイルシステム。マウントすればすぐに使える。
tmpfsを使用するメリットは通常のファイルシステムに比べて高速にアクセスできる。
使い方
mountコマンドでマウントする。
# mount -t tmpfs -o size=2048m /dev/shm /var/lib/mysql/test
sizeを指定しなかった場合は実メモリの半分が割り当てられる。
/var/lib/mysql/test でmysqlのデータに指定して、すべてメモリに乗せることができる。
※検証にてディスクIOに負荷がかかっていることの切り分けのため
今回、tmpfsを使用してディスクIOが全くかからない状態にした。
bonnie
bonnie
ディスクIOテスト用ツール
1.セットアップ方法
bonnie++-1.03e.tgz などのソースをDLする
展開してから./configureを実行
ディスクスピードが速いと結果が+++++など計測できない場合があるため、
以下のようにMinTimeを変更
変更ファイル名: bonnie.h
変更箇所: #define MinTime (0.5) -> #define MinTime (0.001) など適宜変更
makeを実行
作成されたバイナリで以下のように実行
./bonnie++ -d /target-partition -u root -b
※-bオプションを使わないと結果をリアルに取得できない
2.bonnieの見方
■連続書き込み(Sequential Output) Per Char関数putc()を使用したキャラクタベースの書き込みテスト Block関数write()を使用したブロックベースの書き込みテスト Rewrite関数write()を使用した再書き込みテスト
■連続読み込み(Sequential Input) Per Char関数getc()を使用したキャラクタベースの読み込みテスト Block関数read()を使用したブロックベースの読み込みテスト
■ランダムシーク(Random Seek) Seekdrand48()を使用した8000回のlseek()
■連続操作(Sequential Create) Createcreat()を使用したファイルの作成テスト ファイル名は7桁数値、0-12までの英数字 Readstat()を使用したファイル情報の確認テスト Deleteunlink()を使用したファイルの削除テスト
■ランダム操作(Random Create) Createcreat()を使用したファイルの作成テスト ファイル名は任意 Readstat()を使用したファイル情報の確認テスト Deleteunlink()を使用したファイルの削除テスト
bonnieオプション
-bオプション:write時にバッファキャッシュを使わないよう指定する。 (Linuxでは本オプションを指定しても効果無し?)
-dオプション:測定対象のディレクトリを指定する。
-qオプション:実行経過を表示しない。
-rオプション:メモリサイズを指定する。単位はMB。
-sオプション:測定時に作成する一時ファイルの最大サイズを指定する。単位はMB。 デフォルトでは、バッファキャッシュによる測定誤差を小さくするため、実メモリサイズの2倍の一時ファイルが測定時に作成される。測定対象のパーティションの空き容量に注意が必要。 デフォルトより小さいサイズを指定する場合、「-s 512 -r 256」というように-rオプションと組み合わせて使用する。
-uオプション:実行ユーザを指定する。通常は一般ユーザで実行、rootユーザで実行する場合は-u rootオプションが必要となる。
-xオプション:連続して測定する場合、実行回数を指定する。
bonnie++に関して「Random Seek 」という項目があるが、
「4つの子プロセスを作成し、合計4000回のシークを発生させ、各シークでReadを行い、
また10%については同時に Writeも行う。
その時間を測定し1秒間に平均何回シークできたかを測定するもの。」らしく。普通のアプリケーションの一般的なI/O発生パターンを再現しているらしい。