Red Hat Training

A Red Hat training course is available for RHEL 8

第33章 I/O およびファイルシステムパフォーマンスに影響を与える要因

ストレージおよびファイルシステムパフォーマンスに適した設定は、ストレージの目的より大きく左右されます。

I/O およびファイルシステムのパフォーマンスは、以下のいずれかの要因により影響を受ける可能性があります。

  • データの書き込みまたは読み取りパターン
  • 順次または無作為
  • バッファーまたはダイレクト IO
  • 基礎となるジオメトリーとのデータ調整
  • ブロックサイズ
  • ファイルシステムのサイズ
  • ジャーナルサイズおよび場所
  • アクセス時間の記録
  • データの信頼性確保
  • 事前にフェッチするデータ
  • ディスク領域の事前割り当て
  • ファイルの断片化
  • リソースの競合

33.1. I/O およびファイルシステムの問題を監視および診断するツール

Red Hat Enterprise Linux 8 では、システムパフォーマンスを監視し、I/O、ファイルシステム、その設定に関連するパフォーマンス問題を診断するために、以下のツールを利用できます。

  • vmstat ツールは、システム全体のプロセス、メモリー、ページング、ブロック I/O、割り込み、および CPU アクティビティーに関する報告を行います。管理者はこのツールを使用することで、パフォーマンスの問題が I/O サブシステムによるものかを判断しやすくなります。vmstat を使用した分析で、I/O サブシステムが原因でパフォーマンスが低下していることがわかった場合に、管理者は iostat ツールを使用して原因となる I/O デバイスを判別できます。
  • iostat は、システムでの I/O デバイスの負荷を報告します。このツールは sysstat パッケージで提供されます。
  • blktrace は、I/O サブシステムでの時間の使用について詳細にわたる情報を提供します。同梱のユーティリティーである blkparse は、blktrace からのロー出力を読み取り、blktrace が記録した入出力操作を人間が判読できるようにまとめます。
  • bttblktrace 出力を分析し、I/O スタックのエリアごとにデータが費やした時間を表示するので、I/O サブシステムのボトルネックを見つけやすくなります。このユーティリティーは、blktrace パッケージの一部として提供されます。blktrace メカニズムで追跡され、btt が分析する重要なイベントには、以下のようなものがあります。

    • I/O イベント (Q) のキュー
    • ドライバーイベント (D) への I/O のディスパッチ
    • I/O イベントの完了 (C)
  • iowatcherblktrace 出力を使用して、I/O を経時的にグラフ化できます。このツールは、ディスク I/O の論理ブロックアドレス (LBA)、1 秒あたりのスループット (メガバイト単位)、シーク数および I/O 操作に重点を置いています。これを使用することで、デバイスの演算回数の上限に到達するタイミングを判断しやすくなります。
  • BPF コンパイラーコレクション (BCC) は、eBPF (extended Berkeley Packet Filter) プログラムの作成を容易にするライブラリーです。eBPF プログラムは、ディスク I/O、TCP 接続、プロセス作成などのイベントでトリガーされます。BCC ツールは、/usr/share/bcc/tools/ ディレクトリーにインストールされます。以下の bcc-tools は、パフォーマンスの分析に役立ちます。

    • biolatency は、ブロックデバイス I/O(ディスク I/O) のレイテンシーをヒストグラムにまとめています。これにより、デバイスのキャッシュヒット、キャッシュミス、レイテンシーアウトライナーの 2 つのモードなど、分散を調査できます。
    • biosnoop は、基本的なブロック I/O 追跡ツールで、各 I/O イベントの表示、プロセス ID および I/O レイテンシーの発行を行います。このツールを使用して、ディスク I/O パフォーマンスの問題を調査できます。
    • biotop は、カーネルのブロック I/O 操作に使用します。
    • Filelife ツールは、 stat() システムコールを追跡します。
    • fileslower は、読み取りと書き込みが遅い同期ファイルを追跡します。
    • filetop は、プロセスによるファイルの読み取りと書き込みを表示します。
    • ext4slowernfsslower および xfsslower は、特定のしきい値よりも操作速度の遅いファイルを表示するツールです (デフォルト値 10ms)。

      詳細は、BPF コンパイラーコレクションでシステムパフォーマンスの分析 を参照してください。

  • bpftace は、パフォーマンスの問題の分析に使用される eBPF のトレース言語です。また、システムの監査用に BCC のような追跡ユーティリティーが含まれており、I/O のパフォーマンスの問題を調査するのに役立ちます。
  • 以下の SystemTap スクリプトは、ストレージまたはファイルシステムのパフォーマンスの問題の診断に役立ちます。

    • disktop.stp: 5 秒ごとにディスクの読み取りまたは書き込みのステータスを確認し、その期間の上位 10 エントリーを出力します。
    • iotime.stp: 読み取り、書き込み操作に使用した時間、読み取りおよび書き込みバイト数を出力します。
    • traceio.stp: 確認された累積 I/O トラフィックに基づいて上位 10 の実行可能ファイルを秒単位で出力します。
    • traceio2.stp: 指定したデバイスに読み取りおよび書き込みが行われると、実行可能ファイル名とプロセス ID を出力します。
    • inodewatch.stp: 指定したメジャー/マイナーデバイスで、指定の inode に対して読み取りまたは書き込みが行われるたびに、実行可能ファイル名とプロセス ID を出力します。
    • inodewatch2.stp: 指定したメジャー/マイナーデバイスの指定の inode で属性が変更されるたびに、実行可能ファイル名とプロセス ID、属性を出力します。

関連情報