如何解决KVM 如何在不产生足够页面错误的情况下为 VM 分配内存?
我正在尝试了解 x86 的 KVM 内存分配器。我正在做这个实验 - 在新启动的 VM 上使用 mmap(并触摸它)分配 16GB 的内存,以便主机系统内存使用量增加 16 GB(当来宾开始触摸 mmaped 区域时,主机开始将该内存分配给 qemu)。在 VM 上分配内存时,我还在使用 perf stat 计算分配期间 qemu-system 进程生成的页面错误。 我观察到 qemu 进程生成的页面错误数量非常少(在 0-300 的范围内),我预计它会生成 4,194,304 个页面错误。 (16GB/4KB,注意-我已经完全禁用了大页面)。 我在这里错过了什么??
解决方法
- 您是否触摸了所有页面?
Linux 内核使用延迟(按需)分配物理页面,将分配推迟到必要时,并避免分配永远不会实际使用的物理页面。内存映射通常从没有附加物理页面开始。
- 您可能启用了大页面支持
cat /proc/sys/vm/nr_hugepages
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。