単一プロセス/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
の説明を参照してください。
- CPU は I/O が完了するまで待機しません。 iowaitは、ジョブがI / Oが完了するのを待つ時間です。完了していないジョブI / OによってCPUがアイドル状態になると、そのCPUに他のジョブがスケジュールされます。
- マルチコアCPUでは、I / Oが完了するのを待つタスクはどのCPUでも実行されないため、CPUあたりのiowaitを計算するのは困難です。
- 場合によっては、このフィールドの値が小さくなることがあります。
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