Ubuntuの特定のプロセスに割り当てられた合計メモリを調べるにはどうすればよいですか?
Ubuntuの特定のプロセスに割り当てられた合計メモリを調べるにはどうすればよいですか?
回答:
試してください:
pidof bash | xargs ps -o rss,sz,vsz
現在のbashシェルのメモリ使用量を見つけるため(使用していると仮定bash)。bash調査しているものに変更します。特定の1つのプロセスを実行している場合は、それを単独で使用します。
ps -o rss,sz,vsz <process id>
manページから:
RSS:常駐セットサイズ、タスクが使用したスワップされていない物理メモリ(キロバイト単位)。
SZ:プロセスのコアイメージの物理ページのサイズ。これには、テキスト、データ、およびスタックスペースが含まれます。
VSZ:KiB単位のプロセスの仮想メモリサイズ(1024バイト単位)。
のmanページにpsは、-oオプションに可能なすべての引数がリストされます(選択できるものはかなりあります)。代わりに、代替メモリレイアウトを示す-o rss,szBSDスタイルvオプション(ダッシュなし)を使用できます。
pmapプロセスのメモリマップを示すwhichを使用できます。
pmap -p pid
詳細については、manページを参照するman pmapか、pmap(1):プロセスのメモリマップを報告する-Linux manページを参照してください。
Ubuntuの特定のプロセスに割り当てられた合計メモリを調べる方法は?
プロセスに割り当てられるメモリを定義せず、実際にはそれはかなり複雑な質問です(共有メモリマッピングについては-mmap(2)を参照してください。POSIX共有メモリについては-shm_overview(7)を参照してください) ; 開かれたファイルに使用されるページキャッシュ内のいくつかのページはどうでしょうかなど)
あなたは使用することができます/proc/(BTWで使用されているファイルシステムps、pmap、top、htopなど...)。詳細については、proc(5)をお読みください。あなたが使用することができ、PID 1234のプロセスのために特に/proc/1234/status、/proc/1234/statm、/proc/1234/maps等...彼らはあなたが見ることができることを、すべてのテキストの擬似ファイル(パイプのようなビット)ですcat(または読み取り順次いくつかのプログラム内)。ところで、あなたが使用する可能性のあるプログラムの内部から/proc/self  (これは擬似シンボリックリンクです)、例えばシーケンシャルに読む/proc/self/statusなど...
LinuxAteMyRamも参照してください。