找出进程在linux上使用的内存页数

时间:2009-11-22 10:32:59

标签: linux memory paging

我需要找出进程分配的内存页数? 每个页面都是4096,进程内存使用情况我在查找正确值时遇到一些问题。当我在gome-system-monitor中查看时,在内存映射下有一些值可供选择。

感谢。

这一点是将内存使用量除以页数并验证页面大小。

2 个答案:

答案 0 :(得分:5)

很难确定正确分配的内存数量:有与其他进程(r / o部分库)共享的页面,从未使用brk和匿名mmap分配的内存,mmaped文件由于高效的处理算法只触及文件的一小部分等,交换页面,脏页面等待写入磁盘等,所以不能完全从磁盘中取出。

如果您想要处理所有这些复杂性并计算真实的页数,详细信息可在/proc/<pid>/smaps获得,还有一些工具,例如mem_usage.pysmem.pl(容易googlable)把它变成或多或少可用的摘要。

答案 1 :(得分:0)

这将是“Resident Set Size”,假设您的进程不使用swap。

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

某些系统工具(如top)为每个进程显示“swap”的巨大价值 - 这当然是完全错误的,值是VMS和RSS之间的差异,很可能是那些未使用但已分配的内存页面。

相关问题