繁体   English   中英

找出一个进程在Linux上使用多少内存

[英]Find out how many pages of memory a process uses on linux

我需要找出一个进程分配多少内存页? 每页是4096,在查找正确的值时,进程内存使用存在一些问题。 当我在gome-system-monitor中查看时,可以在内存映射下选择一些值。

谢谢。

这样做的目的是将内存使用量除以页面计数并验证页面大小。

很难准确地确定正确分配的内存量:存在与其他进程共享的页面(库的R / O部分),从未使用过brk和匿名mmap分配的内存,由于高效处理而无法从磁盘完全获取的mmaped文件仅接触文件等一小部分的算法,换出的页面,要在磁盘上写入的脏页面等

如果您想处理所有这些复杂性并弄清页面的真实计数,可以在/proc/<pid>/smaps找到详细信息,并且可以使用诸如mem_usage.pysmem.pl类的工具(易于访问)将其变成或多或少可用的摘要。

假设您处理的过程不使用交换,则这将是“居民集大小”。

请注意,一个进程可能会分配更多的内存(“虚拟内存大小”),但是只要它不写入内存,它就不会由物理内存表示,无论是在RAM还是在磁盘上。

某些系统工具(例如top)在每个进程中都显示出巨大的“交换”值-这完全是错误的,该值是VMS和RSS之间的差异,很可能是那些未使用但已分配的内存页。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM