第26章 I/O およびファイルシステムパフォーマンスに影響を与える要因
ストレージおよびファイルシステムパフォーマンスに適した設定は、ストレージの目的より大きく左右されます。I/O およびファイルシステムのパフォーマンスは、さまざまな要因によって影響を受ける可能性があります。
以下は、I/O およびファイルシステムのパフォーマンスに影響を与える可能性のある要因のリストです。
- データの書き込みまたは読み取りパターン
- 順次または無作為
- バッファーまたはダイレクト IO
- 基礎となるジオメトリーとのデータ調整
- ブロックサイズ
- ファイルシステムのサイズ
- ジャーナルサイズおよび場所
- アクセス時間の記録
- データの信頼性確保
- 事前にフェッチするデータ
- ディスク領域の事前割り当て
- ファイルの断片化
- リソースの競合
26.1. I/O およびファイルシステムの問題を監視および診断するツール リンクのコピーリンクがクリップボードにコピーされました!
パフォーマンスメトリクスを追跡し、デバイスの負荷、レイテンシーを分析し、操作をトレースするツールを使用して、I/O およびファイルシステムの問題を効率的に監視および診断します。これらのツールは、Red Hat Enterprise Linux 10 環境におけるボトルネックを特定し、システムパフォーマンスを最適化するのに役立ちます。
Red Hat Enterprise Linux 10 には、システムのパフォーマンスを監視し、I/O およびファイルシステムに関連するパフォーマンスの問題を診断するための以下のツールが用意されています。
-
vmstatツールは、システム全体のプロセス、メモリー、ページング、ブロック I/O、割り込み、および CPU アクティビティーに関する報告を行います。管理者はこのツールを使用することで、パフォーマンスの問題が I/O サブシステムによるものかを判断しやすくなります。vmstat分析の結果、I/O サブシステムがパフォーマンス低下の原因であることが判明した場合、管理者はiostat を使用して原因となっている I/O デバイスを特定できます。 -
iostatは、システムでの I/O デバイスの負荷を報告します。このツールはsysstatパッケージで提供されます。 -
blktraceは、I/O サブシステムでの時間の使用に関する詳細にわたる情報を提供します。付属ユーティリティーであるblkparse は、blktraceからの生の出力を読み取り、記録された入出力操作の人間が読みやすい要約を生成します。 btt はblktrace の出力を分析し、データが I/O スタックの各領域で費やした時間を表示します。これにより、I/O サブシステムにおけるボトルネックを容易に特定できるようになります。このユーティリティーは、blktraceパッケージの一部として提供されます。blktraceメカニズムで追跡され、bttが分析する重要なイベントには、以下のようなものがあります。-
I/O イベント (
Q) のキュー -
ドライバーイベント (
D) への I/O のディスパッチ -
I/O イベントの完了 (
C)
-
I/O イベント (
-
iowatcherはblktrace出力を使用して、I/O を経時的にグラフ化できます。これは、ディスク I/O の論理ブロックアドレス (LBA)、スループット、1 秒あたりのシーク回数、および 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 イベントを、発行元のプロセス ID と I/O レイテンシーとともに表示する基本的なブロック I/O トレースツールです。このツールを使用して、ディスク I/O パフォーマンスの問題を調査できます。 -
biotopは、カーネルのブロック I/O 操作に使用します。 -
filelifeツールは、stat()システムコールを追跡します。 -
fileslowerは、読み取りと書き込みが遅い同期ファイルを追跡します。 -
filetopは、プロセスによるファイルの読み取りと書き込みを表示します。 -
ext4slower、nfsslowerおよびxfsslowerは、特定のしきい値よりも操作速度の遅いファイルを表示するツールです (デフォルト値10ms)。
-
-
bpftaceは、パフォーマンスの問題の分析に使用されるeBPFのトレース言語です。また、システムの監査用に BCC のような追跡ユーティリティーが含まれており、I/O のパフォーマンスの問題を調査するのに役立ちます。 以下の
SystemTapスクリプトは、ストレージまたはファイルシステムのパフォーマンスの問題の診断に役立ちます。-
disktop.stp: 5 秒ごとにディスクの読み取りまたは書き込みのステータスを確認し、その期間の上位 10 エントリーを出力します。 -
iotime.stp: 読み取り、書き込み操作に使用した時間、読み取りおよび書き込みバイト数を出力します。 -
traceio.stp: 確認された累積 I/O トラフィックに基づいて上位 10 の実行可能ファイルを秒単位で出力します。 -
traceio2.stp: 指定したデバイスに読み取りおよび書き込みが行われると、実行可能ファイル名とプロセス識別子を出力します。 -
Inodewatch.stp: 指定されたデバイス上の指定された inode に対して読み取りまたは書き込みが発生するたびに、実行可能ファイル名とプロセス識別子を出力します。 -
inodewatch2.stp: 指定された inode の属性が変更されるたびに、実行可能ファイル名、プロセス識別子、および属性を出力します。
-
詳細は以下を参照してください。
-
システム上の
vmstat(8)、iostat(1)、blktrace(8)、blkparse(1)、btt(1)、bpftrace、およびiowatcher(1)man ページ