找出为Ubuntu中的特定进程分配的总内存


15

如何找到在Ubuntu中为特定进程分配的总内存?


1
您是否尝试过ps -aefl并查看了SZ列?
mdpc

2
“找出分配的内存”是什么意思?您是否想知道进程正在使用多少内存?
吉尔(Gilles)'所以

Answers:


14

尝试:

pidof bash | xargs ps -o rss,sz,vsz

查找当前bash外壳程序的内存使用情况(假设您正在使用bash)。更改bash为您要调查的内容。如果您要执行一个特定的过程,只需单独使用即可:

ps -o rss,sz,vsz <process id>

man页面:

RSS:常驻集大小,任务已使用的未交换物理内存(以千字节为单位)。

SZ:进程核心映像的物理页面大小。这包括文本,数据和堆栈空间。

VSZ:进程的虚拟内存大小,以KiB(1024字节为单位)。

man页面ps将列出该-o选项的所有可能参数(有很多可供选择)。相反,-o rss,sz您可以使用BSD样式v选项(无破折号)来显示替代的内存布局。


谢谢gareth ...您是说SZ是为该进程分配的内存吗?
2014年

4
有一个很好的QA 这里解释之间的关系RSSSZVSZ
garethTheRed 2014年


0

如何找出在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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.