如何找到在Ubuntu中为特定进程分配的总内存?
如何找到在Ubuntu中为特定进程分配的总内存?
Answers:
尝试:
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
选项(无破折号)来显示替代的内存布局。
如何找出在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。