有人可以帮我理解这一点。
我正在运行带有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不保存内存