[英]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.py
或smem.pl
类的工具(易于访问)将其变成或多或少可用的摘要。
假设您处理的过程不使用交换,则这将是“居民集大小”。
请注意,一个进程可能会分配更多的内存(“虚拟内存大小”),但是只要它不写入内存,它就不会由物理内存表示,无论是在RAM还是在磁盘上。
某些系统工具(例如top)在每个进程中都显示出巨大的“交换”值-这完全是错误的,该值是VMS和RSS之间的差异,很可能是那些未使用但已分配的内存页。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.