procディレクトリの下のプロセスディレクトリ

Procは仮想ファイルシステムであり、Linuxシステムの/ procディレクトリにマウントされます。Procには、ユーザーがカーネル情報にアクセスしたり、トラブルシューティングに使用したりできるなど、複数の機能があります。Linuxの非常に便利な機能の1つであり、より特別な機能は、テキストストリームの形式でプロセス情報にアクセスすることです。多くのLinuxコマンド(ps、toPpstreeなど)は、このファイルシステム情報を使用する必要があります。/ procファイルシステムでは、各プロセスに対応するフォルダー/ proc / pidがあり、このフォルダーにプロセスに関する情報が表示されます。

 

コマンドライン

/proc/[pid]/cmdlineこれは、プロセスの完全なコマンドライン情報を含む読み取り専用ファイルです。プロセスがプロセスの場合、zombieこのファイルにはコンテンツがありません。

通信

/proc/[pid]/commプロセスのコマンド名を含む読み取り専用ファイルです。

cwd

/proc/[pid]/cwdこれは、プロセスの現在の作業ディレクトリへのシンボリックリンクです。

/proc/[pid]/environプロセスの環境変数を表示します。

EXE

/proc/[pid]/exe実際に実行されているプログラムのシンボリックリンク。

fd

/proc/[pid]/fdプロセスによって開かれたファイルのステータスを含むディレクトリです。

ディレクトリ内の各項目は、開いているファイルを指すシンボリックリンクであり、番号はファイル記述子を表します。

レイテンシー

/proc/[pid]/latencyどのコードがより大きな遅延を引き起こすかを示します(これを使用するにはfeature、 " echo 1 > /proc/sys/kernel/latencytop"を実行する必要があります)。例は次のとおりです。

 

# cat /proc/2948/latency  
Latency Top version : v0.1  
30667 10650491 4891 poll_schedule_timeout do_sys_poll SyS_poll system_call_fastpath 0x7f636573dc1d  
8 105 44 futex_wait_queue_me futex_wait do_futex SyS_futex system_call_fastpath 0x7f6365a167bc  

各行の最初の3つの数値は、次のコードの実行数、合計実行遅延時間(マイクロ秒単位)、最長実行遅延時間(マイクロ秒単位)であり、その後にコードの完全な呼び出しスタックが続きます。

制限

/proc/[pid]/limits現在のプロセスのリソース制限を表示します。例は次のとおりです。

# cat /proc/2948/limits  
Limit                     Soft Limit           Hard Limit           Units  
Max cpu time              unlimited            unlimited            seconds  
Max file size             unlimited            unlimited            bytes  
Max data size             unlimited            unlimited            bytes  
Max stack size            8388608              unlimited            bytes  
Max core file size        0                    unlimited            bytes  
Max resident set          unlimited            unlimited            bytes  
Max processes             6409                 6409                 processes  
Max open files            1024                 4096                 files  
Max locked memory         65536                65536                bytes  
Max address space         unlimited            unlimited            bytes  
Max file locks            unlimited            unlimited            locks  
Max pending signals       6409                 6409                 signals  
Max msgqueue size         819200               819200               bytes  
Max nice priority         0                    0  
Max realtime priority     0                    0  
Max realtime timeout      unlimited            unlimited            us  

Soft Limit表しkernel、リソースに設定された値をHard Limit表し、Soft Limit上限、及びUnits測定単位であります

マップ

/proc/[pid]/mapsプロセスのメモリ領域マッピング情報を表示します。例は次のとおりです。

# cat /proc/2948/maps  
......  
address                   perms offset  dev   inode                      pathname  
7f4a2e2ad000-7f4a2e2ae000 rw-p 00006000 08:14 6505977                    /usr/lib64/sasl2/libsasldb.so.3.0.0  
7f4a2e2ae000-7f4a2e2af000 ---p 00000000 00:00 0  
7f4a2e2af000-7f4a2eaaf000 rw-p 00000000 00:00 0                          [stack:94671]  
7f4a2eaaf000-7f4a2eab0000 ---p 00000000 00:00 0  
7f4a2eab0000-7f4a2f2b0000 rw-p 00000000 00:00 0                          [stack:94670]  
......  
7f4a434d0000-7f4a434d5000 rw-p 0006e000 08:14 4292988                    /usr/sbin/libvirtd  
7f4a4520a000-7f4a452f7000 rw-p 00000000 00:00 0                          [heap]  
7ffd1a7e4000-7ffd1a805000 rw-p 00000000 00:00 0                          [stack]  
7ffd1a820000-7ffd1a821000 r-xp 00000000 00:00 0                          [vdso]  
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]  

注意すべきことの1つは[stack:<tid>]/proc/[pid]/task/[tid]/パスに対応するスレッドのスタック情報です

ルート

/proc/[pid]/rootこれは、プロセスのルートディレクトリへのシンボリックリンクです。

スタック

/proc/[pid]/stack現在のプロセスのカーネル呼び出しスタック情報を表示しますCONFIG_STACKTRACE。このファイルは、カーネルのコンパイル時にコンパイルオプションがオンになっている場合にのみ生成されます。例は次のとおりです。

# cat /proc/2948/stack  
[<ffffffff80168375>] poll_schedule_timeout+0x45/0x60  
[<ffffffff8016994d>] do_sys_poll+0x49d/0x550  
[<ffffffff80169abd>] SyS_poll+0x5d/0xf0  
[<ffffffff804c16e7>] system_call_fastpath+0x16/0x1b  
[<00007f4a41ff2c1d>] 0x7f4a41ff2c1d  
[<ffffffffffffffff>] 0xffffffffffffffff  

statm

/proc/[pid]/statmプロセスが占有するメモリサイズの統計を7つの値を含めて表示します。測定単位はですpagepageサイズはからgetconf PAGESIZE取得できます)。例は次のとおりです。

# cat /proc/2948/statm    
72362 12945 4876 569 0 24665 0  

各値の意味:
a)プロセスによって占有されている合計メモリ;
b)現時点でプロセスによって占有されている物理メモリ;
c)他のプロセスと共有されているメモリ;
d)プロセスのコードセグメント;
e)共有ライブラリ(2.6バージョン以降、この値は0);
f)プロセスのスタック;
g)dirty pages2.6バージョン以降、この値は0)。

システムコール

/proc/[pid]/syscall現在のプロセスによって実行されているシステムコールを表示します。例は次のとおりです。

# cat /proc/2948/syscall  
7 0x7f4a452cbe70 0xb 0x1388 0xffffffffffdff000 0x7f4a4274a750 0x0 0x7ffd1a8033f0 0x7f4a41ff2c1d  

最初の値はシステムコール番号(7代表poll)であり、その後に6システムコールのパラメーター値(レジスターにあります)が続き、最後の2つの値はスタックポインターと命令カウンターの値です。 。現在のプロセスがブロックされているが、ブロック機能がシステムコールではない場合、システムコール番号の値の-1に、スタックポインタと命令カウンタの値が続きます。プロセスがブロックされていない場合、このファイルには「running」の文字列のみが含まれます。

CONFIG_HAVE_ARCH_TRACEHOOKこのファイルは、カーネルのコンパイル時にコンパイルオプションがオンになっている場合に生成されます。

wchan

/proc/[pid]/wchanプロセスが表示されているsleep場合、kernel現在実行中の関数。

おすすめ

転載: blog.csdn.net/sunxiaopengsun/article/details/114916819