/proc/*のデータはどのように収集され、どのくらい信頼できますか? [コピー]

/proc/*のデータはどのように収集され、どのくらい信頼できますか? [コピー]

/proc/*最近では、各システムのシステムメトリックを集計するクラスタ監視ツール(ganglia)が使用されています。

  1. データはどのように/proc/*収集されますか?
    誰がそこにデータを書きますか?データはどのくらいの頻度で更新されますか?
  2. より正確に収集するために収集方法を調整できますか?

答え1

http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html

/procは仮想ファイルシステムなので、非常に特別です。プロセス情報疑似ファイルシステムとも呼ばれます。これには「実際の」ファイルは含まれていませんが、ランタイムシステム情報(システムメモリ、取り付けられているデバイス、ハードウェア構成など)が含まれています。したがって、カーネルの制御と情報センターと見なすことができます。実際、かなりの数のシステムユーティリティはこのディレクトリにあるファイルを呼び出します。たとえば、「lsmod」は「cat /proc/modules」に等しく、「lspci」は「cat /proc/pci」と同義です。このディレクトリのファイルを変更すると、システムの実行中にカーネルパラメータ(sysctl)を読み取ったり変更したりできます。

つまり、定期的に更新されるファイルではなく、カーネルなどから直接入ってくるリアルタイム情報です。

答え2

内部データは/procまったく更新されません。要求時に生成されます。

ファイルを読み込むとき/proc(または実際にどんなファイルを読み込むか)、カーネルを呼び出すことになります。 「実際の」ファイルを読み取ると、カーネルは(キャッシュ、権限などに応じて)ファイルシステムを参照して、要求されたデータを取得します。 「ファイル」を読み込むと、/procカーネルはすぐに関連データを生成します。

この技術は非常に普及しており、現在様々なファイルシステム領域で広く使用されている。例えば、/sys仮想ファイルシステム/procアーキテクチャの観点から見ると、内容はまったく異なりますが、非常に似ています。最新のシステムでは、これ/devも可能であることがわかります。仮想ファイルシステムそうでなければ、/devファイルをハードウェアの現実と同期させるのはかなり難しいからです。一部のユーザーレベルのサービスは、以下を介して独自の仮想ファイルシステムを提供します。ヒューズ

答え3

のファイルは/procほとんどの場合デバイスドライバとして実装されています。/dev/ttyS*プログラマは、ハードウェアからデータを返すのではなく、プログラムによって生成されたデータを返すことを除いて、デフォルトではシリアルデバイス()のように実装されています。

どうすればWebサーバーに似ています。ただし、ファイルがTCPソケットを受信して​​応答するのではなく、/proc読み取り要求を受信して​​応答するデバイスドライバです。

Unixカーネルドライバの設計にはデバイスノードのみをインストールできるように強制することはなかったので、人々はいくつかのランタイム情報を返す仮想デバイスを含むディレクトリを/dev開発して標準化する機会を得ました。/proc今日、Linuxカーネルには/procドライバを処理するための特別な方法が含まれています。

以下は、ドライバの例を含むデバイスドライバの記事です/prochttp://www.linuxdevcenter.com/pub/a/linux/2007/07/05/devhelloworld-a-simple-introduction-to-device-drivers-under-linux.html

関連情報