ファイルシステムのベンチマーク
理解のために小咄形式でまとめました。
システムパフォーマンス関連記事の目次
登場人物
- 太郎(後輩):入社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 パフォーマンスを比較するベンチマーク測定 をやってみます!」
参考リンク
システムパフォーマンス関連記事の目次
システムパフォーマンス関連記事は、以下の書籍を参考に記述しています。