如何找出 Ubuntu 中为特定进程分配的总内存?
答案1
尝试:
pidof bash | xargs ps -o rss,sz,vsz
查找当前bash
shell 的内存使用情况(假设您正在使用bash
)。更改bash
为您正在调查的任何内容。如果您正在执行一个特定过程,只需单独使用它即可:
ps -o rss,sz,vsz <process id>
从man
页面:
RSS
:驻留集大小,任务已使用的非交换物理内存(以千字节为单位)。
SZ
:进程核心映像的物理页大小。这包括文本、数据和堆栈空间。
VSZ
:进程的虚拟内存大小,以 KiB 为单位(1024 字节单位)。
该man
页面ps
将列出该选项的所有可能的参数-o
(有很多可供选择)。-o rss,sz
您可以使用 BSD 样式选项(无破折号)来代替v
,它显示了替代的内存布局。
答案2
答案3
如何找出ubuntu中为特定进程分配的总内存?
你没有定义什么是内存分配对于一个进程来说,实际上这是一个非常复杂的问题(共享内存映射怎么样 - 请参阅映射(2)了解详情; POSIX 共享内存怎么样 - 请参阅shm_概述(7)了解更多;中的某些页面怎么样页面缓存用于打开的文件; ETC...)
您可以使用文件系统(顺便说一句,、、等/proc/
使用该文件系统)。读ps
pmap
top
htop
过程(5)了解更多。特别是对于 pid 1234 的进程,您可以使用/proc/1234/status
、/proc/1234/statm
等/proc/1234/maps
...它们都是文本伪文件(有点像管道),您可以使用它们查看cat
(或读取依次地在某些程序中)。顺便说一句,从您可能使用的程序内部/proc/self
(这是一个伪符号链接),例如顺序读取/proc/self/status
等...
也可以看看LinuxAteMyRam。