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