【Linux】procファイルシステム
2. proc ファイルシステムで一般的に使用されるノードの詳細な説明
序文
重要なリンク: 問題を抱えながら前進し続ける
Linux システムには、ファイル インターフェイス上で統一された操作を実行してさまざまな機能を実行するために使用される特殊なファイル システムがいくつかあり、proc ファイル システムはその 1 つです。
- procファイルシステム
- procファイルシステムの役割と特徴
- proc ファイル システムが提供できる情報
- proc ファイルシステムの一般的な使用法
Linux ノート教師の学習コースでは、教師の講義は簡潔かつ詳細ですが、開始するにはある程度の知識の背景が必要です。
参考記事と動画:https://xuesong.blog.csdn.net/article/details/109522945
1. proc ファイルシステムの概要
1.1 proc ファイルシステムとは何ですか?
Linux システムの /proc ディレクトリはファイル システム、つまり proc ファイル システムです。
/ 他の一般的なファイル システムとは異なり、/proc は、ディスク上にファイルを含まず、実行時にカーネルによって動的に生成されるファイルとディレクトリを含む仮想ファイル システムです。
Linux には特殊な種類の擬似ファイル システムがあり、ファイル インターフェイス上で統合操作を実行して、ptyfs、devfs、sysfs、procfs などのさまざまな機能を実行します。procfs は、最も広く使用されている疑似ファイル システムの 1 つです。
proc ファイル システムのマウント ポイントは /proc です。これは元々、プロセスの実行ステータス、プロセスによって現在開かれているファイル、作成されたソケット、およびソケットの配置など、プロセスの実行中に情報を提供するように設計されました。仮想メモリ。名前の由来 (Process Data Filesystem)。その後、割り込み情報、デバイス マッピング情報、メモリ ステータスなど、多くのシステム レベルのカーネル情報が追加されました。
全体として、/proc ファイルシステムは、システム管理者と開発者に、システムのステータスとパフォーマンスをクエリおよびデバッグするための便利な方法を提供します。
1.2 procファイルシステムの役割と特徴
proc ファイル システムは、カーネル内のさまざまなサブシステムに関する情報を提供します。これにより、ユーザー空間で cat および echo コマンドを簡単に使用したり、システム コールを読み書きして、CPU モデルやパラメータなどのカーネルのさまざまなサブシステムに関する情報を取得したりできるようになります。、メモリの使用状況、利用可能なタイミング ハードウェアと詳細なパラメータ、接続された外部デバイスとマッピング アドレスなどは、システムの実行中にカーネル ソース コードを再コンパイルすることなく、カーネル パラメータを動的に変更することもできます。
procファイルシステムの特徴は何ですか?
- 読みやすさ: proc ファイル システムの情報はテキスト形式で表示されるため、読みやすく、解析しやすくなります。
- システム レベル: proc ファイル システムは、システム内で実行中のプロセス、メモリ使用量、CPU 情報、ハードウェア構成などのカーネルおよびシステム レベルの情報へのアクセスを提供します。
- 診断とデバッグに使用可能: proc ファイル システムは、システム状態とプロセス情報へのリアルタイム アクセスを提供するため、システムの問題の診断とデバッグに非常に役立ちます。
- 安定性と保守性: システムのさまざまなパラメータや構成情報を変更する必要がある場合、特別なカーネル モジュールを作成することなく、proc ファイル システムを通じて管理できます。
1.3 proc ファイルシステムによって提供される情報
書類 | 導入 |
/proc/cpuinfo | このファイルには、メーカー、モデル、周波数、キャッシュなど、CPU に関する詳細情報が含まれています。 |
/proc/meminfo | このファイルには、使用可能なメモリ、キャッシュ サイズ、スワップ パーティションなど、メモリに関する詳細情報が含まれています。 |
/proc/loadavg | このファイルには、システム上で実行されているプロセスの平均数と CPU を待機しているプロセスの数を表すシステムの負荷平均が含まれています。 |
/proc/coldsym | このファイルは、カーネルのすべてのグローバル変数と関数のメモリ内のアドレスを含むシンボル テーブルです。 |
/proc/割り込み | このファイルには、各 CPU で処理されたさまざまなタイプの割り込みのシステム記録カウントが含まれています。 |
/proc/バージョン | このファイルには、カーネル バージョン、GCC バージョン、その他の情報を含むシステムのバージョン情報が含まれています。 |
/proc/net/tcp | このファイルには、ローカル アドレス、リモート アドレス、ステータスなどの TCP 接続に関する情報が含まれています。 |
/proc/net/udp | このファイルには、ローカル アドレス、リモート アドレス、ステータスなどの UDP 接続に関する情報が含まれています。 |
/proc/sys/カーネル/ホスト名 | このファイルにはシステムのホスト名が含まれています |
/proc/sys/kernel/pid_max | このファイルには、システムで許可されている最大プロセス ID が含まれています |
/proc/sys/fs/ファイル-nr | このファイルには、現在開いているファイルの数、割り当てられているファイル ハンドルの数、最大ファイル ハンドルなど、開いているファイルに関する統計が含まれています。 |
2. proc ファイルシステムで一般的に使用されるノードの詳細な説明
2.1 /proc/cpuinfo
このファイルには、CPU コアの数、各コアの動作周波数、キャッシュ サイズ、ワード幅アドレス ラインの長さなど、現在のシステム CPU のパラメータ情報が含まれています。たとえば、私のパーソナル コンピュータでは、cat /proc/cpuinfo によって表示される情報の一部は次のとおりです。
2.2 /proc/meminfo
このファイルには、物理メモリの合計容量、使用済みメモリ、空きメモリ、共有メモリ、スワップ メモリ サイズなど、システム内の現在のメモリ ステータス情報が表示されます。
日常の開発作業では、開発者は通常、top コマンドの出力を通じてシステムの現在のメモリ使用量を表示することを好みます。これは、ほとんどの場合、メモリの総量と現在の使用量だけを気にするだけで十分であるためです。
ただし、特殊なケースでは、スラブ メモリの使用状況 (ページ フレーム内の小さな記憶領域にメモリを分割して割り当てる方法の記録)、再利用可能なメモリなど、このファイルで提供されるより詳細なメモリ ステータス情報を参照する必要があります。量 (SReclaimable)、カーネル スタック領域のサイズ (カーネル スタック)、malloc を使用して割り当てられたヒープ メモリの合計量、mmap を使用してマップされたメモリの合計量など。
2.3 /proc/coldsym
このファイルは、カーネルのすべてのグローバル変数と関数のメモリ内のアドレスを含むシンボル テーブルです。
これはカーネル開発者がカーネルをデバッグするのを助けるために追加されたファイルで、Linux システムがクラッシュしたときに生成される Opps 情報のうち、関数呼び出しスタックに表示される関数名はこのファイルを利用して生成されます。
2.4 /proc/割り込み
このファイルには、各 CPU で処理されたさまざまなタイプの割り込みのシステム記録カウントが含まれています。
Linux では、特別な処理がない場合、通常、すべての割り込みは CPU の最初のコア (CPUO) に渡されて処理されます。システムがさまざまな CPU に割り込みを分散して負荷分散を実現するのに役立つ rqbalance と呼ばれるユーティリティがあります。これは、マルチコア プロセッサのパフォーマンス向上とエネルギー消費制御に大きな効果をもたらします。
現在の Linux ディストリビューションのほとんどは、デフォルトでマルチコア プロセッサ上でこのサービスを開始しますが、万が一に備えて、読者はサービスが自分のシステムで有効になっているかどうかを確認し、proc/interrupts ファイルをチェックして割り込みのバランスが取れているかどうかを判断できます。.異なる CPU に分散されます。
2.5 /proc/loadavg
このファイルは、時間の経過に伴うシステムの平均負荷を示します。実際の出力は次のようになります。
上面的信息,具体含义如下:
1.过去一分钟的系统平均负载
2.过去五分钟的系统平均负载
3.过去十五分钟的系统平均负载
4.采样时刻运行队列的任务数/系统中活跃的总任务数
5.采样时刻占用最大的线程ID
このファイルの出力の最初の 3 つの値は、システム負荷の傾向を観察するためによく使用されます。前の値が後の値より小さい場合は、システム負荷が減少していることを意味し、そうでない場合は、システム負荷が増加傾向を示し始めていることを意味します。
3. まとめ
特殊なファイル システムの存在により、Linux は強力で柔軟な機能を維持しながら、カーネル データを表示および変更するための非常にシンプルなインターフェイスを備えています。
proc ファイル システムにより、システムのデバッグと保守が容易になり、システムの安定性と保守性が向上します。