ファイルシステムのベンチマーク
理解のために小咄形式でまとめました。
システムパフォーマンス関連記事の目次
登場人物
- 太郎(後輩):入社1年目の若手エンジニア。
- 花子(先輩):システムエンジニア歴3年の先輩。
場面:オフィスの開発ルーム
太郎が ファイルシステムのパフォーマンス測定
に関する資料を見ながら、花子に質問する。
太郎:「花子先輩、ファイルシステムのパフォーマンスを評価する実験手法
について調べてるんですが、 どのツールをどう使うのか
がよく分かりません…。」
花子:「いい質問ね! ファイルシステムの実験
には、 パフォーマンスを評価するための 3 つの方法
があるの。それぞれ詳しく説明するわね。」
ファイルシステムのベンチマーク
花子:「ファイルシステムのベンチマーク測定
には、 3 つの主要な手法
があるの。」
- アドホックテスト
- マイクロベンチマークツール
- キャッシュのフラッシュ
1. アドホックテスト
花子:「アドホックテスト
とは、 手軽に I/O のパフォーマンスを評価する方法
よ。」
- 単純な
dd
コマンドを使って I/O 性能を計測 ls -lR
でディレクトリ構造のスキャン速度を評価time cp
を使ってファイルコピーの時間を測定
「例えば お湯を沸かすのに、簡単に手をかざして温度を測る
のと同じで、 ざっくりとしたテスト
ね。」
太郎:「なるほど、 細かい分析はできなくても、ざっくりと I/O パフォーマンスを把握できる
んですね!」
2. マイクロベンチマークツール
花子:「マイクロベンチマークツール
は、 より詳細な I/O パフォーマンスを測定するための専用ツール
よ。」
-
Bonnie, Bonnie++ →
単純な I/O ワークロードの評価に適している。
-
iozone →
シーケンシャル I/O と ランダム I/O の両方を測定可能。
-
fio →
最も推奨されるツールで、複雑な I/O ワークロードのシミュレーションが可能。
-
FileBench →
実際のアプリケーションワークロードを模倣してテスト可能。
「例えば 車の燃費テスト
みたいなもので、 実際にどのくらいの負荷でどれくらいのパフォーマンスが出るのかを評価する
のよ。」
太郎:「fio が推奨されてるんですね! 実環境に近い I/O 負荷テスト
をするのに便利そうです!」
3. キャッシュのフラッシュ
花子:「キャッシュのフラッシュ
は、 キャッシュが I/O 測定に影響を与えないようにするための手法
よ。」
-
sync
コマンド を実行して、ディスクに書き込まれていないデータをフラッシュする。
-
echo 3 > /proc/sys/vm/drop_caches
を実行して、キャッシュをクリアする。
-
システムの再起動 を行い、
キャッシュの影響を完全に排除する。
「これは 水泳のタイム測定をする前に、水中の抵抗を一定にする
みたいなもので、 正確な測定をするための準備
なのよ。」
太郎:「確かに! キャッシュの影響をなくして、純粋なディスク I/O の性能を測定できる
んですね!」
花子:「これらの ファイルシステムの実験手法
を コーヒーマシンの性能テスト
に例えると、こんな感じね。」
-
アドホックテスト →
一杯のコーヒーを淹れる時間をざっくり測る
-
マイクロベンチマークツール →
異なる豆や抽出方法で細かく淹れ時間や温度を測定
-
キャッシュのフラッシュ →
フィルターをリセットして、影響を取り除いた状態でテスト
太郎:「なるほど! 実験手法を組み合わせることで、より正確な I/O パフォーマンスの評価ができる
んですね!」
まとめ
花子:「ファイルシステムの 実験手法
を活用すれば、 I/O パフォーマンスの問題を的確に把握し、最適化の方針を決めることができる
わ。」
太郎:「ありがとうございます! fio
を使って SSD と HDD の I/O パフォーマンスを比較するベンチマーク測定
をやってみます!」
参考リンク
システムパフォーマンス関連記事の目次
システムパフォーマンス関連記事は、以下の書籍を参考に記述しています。