web-dev-qa-db-ja.com

Ubuntuの特定のプロセスに割り当てられたメモリの合計を確認する

Ubuntuの特定のプロセスに割り当てられた合計メモリを確認するにはどうすればよいですか?

15
Anjali

試してください:

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バイト単位)。

manpsページには、-oオプションへの可能な引数がすべてリストされます(選択できるものはかなりあります)。 -o rss,szの代わりに、代替のメモリレイアウトを示すBSDスタイルのvオプション(ダッシュなし)を使用できます。

14
garethTheRed

プロセスのメモリマップを示すpmapを使用できます。

pmap -p pid

詳細については、man pmapのマニュアルページを参照するか、 pmap(1):プロセスのメモリマップのレポート-Linuxのマニュアルページ を参照してください。

5
ByteNudger

ubuntuの特定のプロセスに割り当てられた合計メモリを確認するにはどうすればよいですか?

プロセスに割り当てられたメモリを定義していませんが、実際にはかなり複雑な質問です(共有メモリマッピングについては-参照- mmap(2) 詳細については、POSIX共有メモリについて-詳細については shm_overview(7) を参照; ページキャッシュ の一部のページについては開いているファイルなど...)

/proc/ファイルシステムを使用できます(BTWは、pspmaptophtopなどによって使用されます...)。詳細は proc(5) を参照してください。特にpid 1234のプロセスでは、/proc/1234/status/proc/1234/statm/proc/1234/mapsなどを使用できます。これらはすべて、catで確認できるテキスト形式の疑似ファイル(パイプのようなもの)です。 (または、プログラム内で順次を読み取ります)。ところで、プログラム内から/proc/self(擬似シンボリックリンク)を使用できます。順次読み取る/proc/self/statusなど...

LinuxAteMyRam も参照してください。