単一プロセスのiowait統計(ファイル)はどこにありますか?

単一プロセスのiowait統計(ファイル)はどこにありますか?

単一プロセス/pid/サービスのiowait統計を格納するファイルを見つけるために必要なスクリプトを作成しています。そのような文書がありますか?Debian ベース配布?

統計/proc/<pid>/statがありません/proc/<pid>/io待つ、マニュアルページによると。他のツールの出力を解析できることを知っています。オートフ男の名前しかし、外部コマンドのstdoutを解析することは避けるべきパフォーマンスの問題です。

ノート/proc/stat:内容と意味を理解してください。しなければならない待つ一つを数える単一プロセス、CPU全体、または特定のコアには適用されません。

答え1

iowait理論的には、各プロセスは次のよう/proc/[pid]/statにインポートできます。工程(5)私達は読みます:

(42) delayacct_blkio_ticks  %llu  (since Linux 2.6.18)
     Aggregated block I/O delays, measured in clock ticks (centiseconds).

delayacct_blkio_ticksこれが実際に何を意味するのかわかりません。とにかく、man procあなたに合った唯一のものです。

ご質問がある場合は、以下を確認してください。proc FSを使用したブロックI/Oレイテンシの測定

また、/proc/stat各CPUブロックiowaitの説明を参照してください。

  1. CPU は I/O が完了するまで待機しません。 iowaitは、ジョブがI / Oが完了するのを待つ時間です。完了していないジョブI / OによってCPUがアイドル状態になると、そのCPUに他のジョブがスケジュールされます。
  2. マルチコアCPUでは、I / Oが完了するのを待つタスクはどのCPUでも実行されないため、CPUあたりのiowaitを計算するのは困難です。
  3. 場合によっては、このフィールドの値が小さくなることがあります。

iowaitからCPU固有のデータを取得できます/proc/stat。私のUbuntu 18.04には/proc/stat次のセクションがあります。

cpu  2752162 16054 941158 49212025 789607 0 217089 0 0 0
cpu0 1397207 7767 500620 24623046 407078 0 70574 0 0 0
cpu1 1354955 8286 440538 24588978 382529 0 146515 0 0 0

cpu■列の横の5番目のiowait列は値です。私の特別なケースでは。使用されるコアによって、列の数と意味が異なる場合があります。

各列の正確な意味を得るには、マニュアルを確認する必要があります。linux-docまず、Ubuntuにパッケージをインストールします。

sudo apt install linux-doc

見てくださいman proc

man proc

/proc/stat各列には詳細な説明があります。

また読んでくださいLinux /proc/stat ファイルの読み方値を計算する方法を学びます。

CentOSではkernel-docパッケージをインストールする必要があります。

yum install kernel-doc

その後、ファイルを読みます。

/usr/share/doc/kernel-doc/Documentation/filesystems/proc.txt

関連情報