pages_sharing和pages_shared在ksm上的差异

有人可以帮我理解这一点。

我正在运行带有5个虚拟磁盘的kvm主机。

这些是ksm司机统计

each page is 4KB cat /sys/kernel/mm/ksm/pages_shared 162221 cat /sys/kernel/mm/ksm/pages_sharing 264281 cat /sys/kernel/mm/ksm/pages_unshared 241483 

“pages_sharing”是由vms创build的页面总数。 和“pages_shared”是被发现相似并合并在一起的页面的数量。

 if that is true then why is pages_sharing-pages_shared != pages_unshared 264281-162221 != 241483 

pages_unshared意味着它说:页面不能共享,因为它们是唯一的。

pages_shared表示有多less页正在被使用和被共享。

pages_sharing表示虚拟机认为有多less页面。 如果您没有运行KSM,那么实际上将使用多less个页面。

因此,在您的示例中,发现有264281个页面是可共享的,因此它们被合并为162221个页面,而241483个页面不能共享。 KSM为您节省了大约398 MB的内存。

见这里https://www.kernel.org/doc/Documentation/vm/ksm.txt

 pages_shared - how many shared pages are being used pages_sharing - how many more sites are sharing them ie how much saved pages_unshared - how many pages unique but repeatedly checked for merging 

所以,你不应该从pages_sharing中减去pages_shared。 pages_sharing是保存的内存!

pages_sharing是真正保存的内存:264281 * 4096/1024/1024 = 1032MB

(264281 – 162221)* 4096 = 418037760.除以(1024 * 1024)= 398.67MB不保存内存