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

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

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

答案1

尝试:

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

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

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

man页面:

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

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

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

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

答案2

您可以使用pmap它显示进程的内存映射:

pmap -p pid

有关它的更多信息,请参阅手册页man pmap或查看pmap(1):报告进程的内存映射 - Linux 手册页

答案3

如何找出ubuntu中为特定进程分配的总内存?

你没有定义什么是内存分配对于一个进程来说,实际上这是一个非常复杂的问题(共享内存映射怎么样 - 请参阅映射(2)了解详情; POSIX 共享内存怎么样 - 请参阅shm_概述(7)了解更多;中的某些页面怎么样页面缓存用于打开的文件; ETC...)

您可以使用文件系统(顺便说一句,、、等/proc/使用该文件系统)。读pspmaptophtop过程(5)了解更多。特别是对于 pid 1234 的进程,您可以使用/proc/1234/status/proc/1234/statm/proc/1234/maps...它们都是文本伪文件(有点像管道),您可以使用它们查看cat(或读取依次地在某些程序中)。顺便说一句,从您可能使用的程序内部/proc/self (这是一个伪符号链接),例如顺序读取/proc/self/status等...

也可以看看LinuxAteMyRam

相关内容