我有一个Linux服务器进程,可以在启动时加载大量资源。此进程将根据请求进行分叉。启动时加载的资源是bigest资源,在运行时不会更改。常用子进程使用读/写控制结构来处理对常量资源的请求。
如何确定进程之间共享多少内存以及每个进程有多少内存?或者由于来自任何进程的写访问权限而重复哪些页面?
答案 0 :(得分:5)
您可以从proc文件系统中的/proc/$pid/pagemap
和/proc/kpagecount
以及/proc/kpageflags
虚拟文件中获取此信息。对后者的访问需要root,因为它可能泄漏有关您不拥有的进程内存映射的特权信息。请阅读内核文档中的Documentation/vm/pagemap.txt
以获取有关数据格式的详细信息。