我可以用Linux命令获得所有进程的美好内存映射
pmap $(ps -A | awk '{print $1}'|grep -v PID) | sort | grep \^0
看起来像
... 00007fd6dbf45000 4K rw--- /lib/libnss_compat-2.11.1.so 00007fd6dbf46000 1524K rx-- /lib/libc-2.11.1.so 00007fd6dc0c3000 2044K ----- /lib/libc-2.11.1.so ...
所有进程的内存映射在这里合并。 但是我错过了内核有内存页面的信息。 是否有一个类似的工具“完整的内存映射”?
你的命令没有多大意义。 pmap为每个进程报告的地址仅在这些进程自己的地址空间中有效,即在它们的虚拟内存中。 他们将在技术上对应于不同的页面时会有“重叠”。 其中一些将不在RAM中,但在磁盘上。
另一方面,内核所拥有的页面存储在物理内存中。
更好的方法是使用sysrq。
运行以下并检查你的/ var / log / messages。
#echo m> / proc / sysrq-trigger
这会给你区域明智的内存转储。 签出以下url
https://www.kernel.org/doc/gorman/html/understand/understand005.html