0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】ファイルシステムのチューニング【5分で読める】

Last updated at Posted at 2025-02-17

ファイルシステムのチューニング

理解のために小咄形式でまとめました。

登場人物

  • 太郎(後輩):入社1年目の若手エンジニア。
  • 花子(先輩):システムエンジニア歴3年の先輩。

場面:オフィスの開発ルーム
太郎が ファイルシステムのチューニング に関する資料を見ながら、花子に質問する。

太郎:「花子先輩、ファイルシステムのチューニング について勉強してるんですが、 どの設定を調整すれば効果があるのか が分かりません…。」

花子:「いい質問ね! ファイルシステムのチューニング は、 ワークロードに応じて最適化 するのが重要よ。今回は 3 つの主要なアプローチ を紹介するわ。」


ファイルシステムのチューニング

花子:「ファイルシステムの チューニング は、大きく 3 つの観点 で考えるのが効果的よ。」

  1. マウントオプションの最適化
  2. ファイルシステムのパラメータ調整
  3. キャッシュとバッファの管理

1. マウントオプションの最適化

花子:「マウントオプション を適切に設定することで、 不要な I/O を削減 できるの。」

(1) noatime の有効化

  • ファイルアクセス時に atime(最終アクセス時刻) を更新しない設定。
  • デフォルトでは ファイルを読むだけでも atime が更新されるため、不要な I/O が発生 する。
  • 適用コマンド例:
    mount -o remount,noatime /dev/sdX /
    

太郎:「なるほど! noatime を設定すれば、余計なディスク書き込みを減らせる んですね!」


(2) barrier=0 の活用

  • データ整合性よりも パフォーマンスを優先する場合 に、バリアを無効化する。
  • ただし、 電源障害時のデータ損失リスクがある ため、UPS(無停電電源装置)の利用を推奨。
  • 適用コマンド例:
    mount -o remount,barrier=0 /dev/sdX /
    

太郎:「リスクはあるけど、 信頼性よりも速度が重要な用途なら有効 ってことですね!」


(3) data=writeback の適用

  • データのジャーナリングを最小限にして、書き込み性能を向上させる。
  • ext4 の場合、デフォルトでは ordered(メタデータのみジャーナリング)だが、 writeback を使うとさらに軽量化できる。
  • 適用コマンド例:
    mount -o remount,data=writeback /dev/sdX /
    

太郎:「データベースみたいな 頻繁に書き込みが発生する環境 では、 writeback モードが有効 かもしれませんね!」


2. ファイルシステムのパラメータ調整

花子:「ファイルシステムの設定 を変更することで、 パフォーマンスのボトルネックを解消 できるの。」

(1) tune2fs を使った設定調整

  • tune2fs コマンドを使うと、 ext4 の内部パラメータを最適化 できる。
  • 適用例:
    tune2fs -o journal_data_writeback /dev/sdX
    
  • ジャーナリングのモードを変更し、書き込みパフォーマンスを向上。

太郎:「なるほど、 マウントオプションだけじゃなくて、tune2fs でも調整できる んですね!」


(2) e2fsck によるファイルシステムの最適化

  • ディレクトリのインデックスを最適化し、 ファイル検索を高速化 できる。
  • 適用コマンド例:
    e2fsck -D -f /dev/sdX
    

太郎:「ディレクトリの最適化をすれば、 大量のファイルを扱うサーバーで効果がありそう ですね!」


3. キャッシュとバッファの管理

花子:「ファイルシステムのキャッシュ を適切に調整することで、 I/O の負荷を分散 できるの。」

(1) dirty_ratio の調整

  • キャッシュにデータを溜めて、まとめて書き込む割合を変更する。
  • 適用コマンド例:
    echo 10 > /proc/sys/vm/dirty_ratio
    

太郎:「書き込みを こまめにディスクへ反映 すれば、 大きな負荷が発生するのを防げる んですね!」


(2) drop_caches を使ったキャッシュ管理

  • キャッシュをクリアし、 パフォーマンス測定時の影響を減らす
  • 適用コマンド例:
    echo 3 > /proc/sys/vm/drop_caches
    

太郎:「テスト時に キャッシュの影響をなくして、純粋なディスク I/O の性能を測定 するのに役立ちそうですね!」


花子:「これらの ファイルシステムのチューニング手法レストランの運営 に例えると、こんな感じね。」

  1. マウントオプションの最適化オーダーの受け取り方法を効率化して、無駄な手間を省く。
  2. ファイルシステムのパラメータ調整メニューを最適化して、調理時間を短縮。
  3. キャッシュとバッファの管理キッチンの食材ストックを調整して、スムーズに提供できるようにする。

太郎:「なるほど! システム全体の効率化を考えて調整すれば、無駄な I/O を削減しながらパフォーマンスを向上 できるんですね!」


まとめ

花子:「ファイルシステムの チューニング は、 使い方やワークロードに応じて適切な設定を行うこと が重要よ。」

太郎:「ありがとうございます! noatime を設定して、 ファイルアクセスの無駄な I/O を減らすチューニング を試してみます!」

参考リンク

システムパフォーマンス関連記事の目次

システムパフォーマンス関連記事は、以下の書籍を参考に記述しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?