【Linux】procファイルシステム

【Linux】procファイルシステム

序文

 1. proc ファイルシステムの概要

1.1 proc ファイルシステムとは何ですか?

1.2 procファイルシステムの役割と特徴

1.3 proc ファイルシステムによって提供される情報

2. proc ファイルシステムで一般的に使用されるノードの詳細な説明

2.1 /proc/cpuinfo 

2.2 /proc/meminfo

2.3 /proc/coldsym

2.4 /proc/割り込み

2.5 /proc/loadavg

3. まとめ


序文

重要なリンク: 問題を抱えながら前進し続ける

Linux システムには、ファイル インターフェイス上で統一された操作を実行してさまざまな機能を実行するために使用される特殊なファイル システムがいくつかあり、proc ファイル システムはその 1 つです。

  1. procファイルシステム
  2. procファイルシステムの役割と特徴
  3. proc ファイル システムが提供できる情報
  4. proc ファイルシステムの一般的な使用法

Linux ノート教師の学習コースでは、教師の講義は簡潔かつ詳細ですが、開始するにはある程度の知識の背景が必要です。

参考記事と動画:https://xuesong.blog.csdn.net/article/details/109522945

https://live.csdn.net/v/263371?spm=1001.2014.3001.5501

 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 ファイル システムにより、システムのデバッグと保守が容易になり、システムの安定性と保守性が向上します。

おすすめ

転載: blog.csdn.net/weixin_42373086/article/details/130778938