pages_sharing 和 pages_shared 在 ksm 中的区别

Kev*_*ker 2 virtualization memory kvm-virtualization

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

我正在运行带有 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
Run Code Online (Sandbox Code Playgroud)

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

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


 264281-162221 != 241483
Run Code Online (Sandbox Code Playgroud)

Mic*_*ton 5

pages_unshared 意思就是它所说的:页面无法共享,因为它们是独一无二的。

pages_shared 表示实际使用和共享的页面数量。

pages_sharing表示虚拟机认为有多少页。如果您没有运行 KSM,这就是实际使用的页面数。

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

  • 当然:(264281 - 162221) * 4096 = 418037760。除以 (1024 * 1024) 得到 398.67 ... (2认同)