原文链接:
http://blog.csdn.net/halcyonbaby/article/details/20454933
Huge Page
适合大内存/内存密集型型应用虚拟机的调优。
减小也表尺寸,降低查找缓存(TLB)的cache-miss,加速VM内存转换。
默认Page size 4K / Huge Page 2M
libvirt
xml设置方法:(告诉hypervisor虚拟机内存使用hugepage分配)
<memoryBacking>
<hugepages/>
</memoryBacking>
qemu设置方法
-mem-prealloc -mem-path /dev/hugepages/libvirt/qemu
内核参数
通过内核参数/proc/sys/vm/nr_hugepages修改。
Transparent Huge Page
内核线程khugepaged周期性自动扫描内存,自动将地址连续可以合并的4KB的普通Page并成2MB的Huge Page。
Redhat系统
通过内核参数/sys/kernel/mm/redhat_transparent_hugepage/enabled打开.
其他Linux系统
通过内核参数/sys/kernel/mm/transparent_hugepage/enabled打开.
确认方法
[root@localhost transparent_hugepage]# grep AnonHugePages /proc/meminfo
AnonHugePages: 405504 kB
[root@localhost transparent_hugepage]# virsh list
Id Name State
----------------------------------------------------
2 numa running
[root@localhost transparent_hugepage]# virsh destroy 2
Domain 2 destroyed
[root@localhost transparent_hugepage]# grep AnonHugePages /proc/meminfo
AnonHugePages: 0 kBHuge Page
适合大内存/内存密集型型应用虚拟机的调优。
减小也表尺寸,降低查找缓存(TLB)的cache-miss,加速VM内存转换。
默认Page size 4K / Huge Page 2M
libvirt
xml设置方法:(告诉hypervisor虚拟机内存使用hugepage分配)
<memoryBacking>
<hugepages/>
</memoryBacking>
qemu设置方法
-mem-prealloc -mem-path /dev/hugepages/libvirt/qemu
内核参数
通过内核参数/proc/sys/vm/nr_hugepages修改。
Transparent Huge Page
内核线程khugepaged周期性自动扫描内存,自动将地址连续可以合并的4KB的普通Page并成2MB的Huge Page。
Redhat系统
通过内核参数/sys/kernel/mm/redhat_transparent_hugepage/enabled打开.
其他Linux系统
通过内核参数/sys/kernel/mm/transparent_hugepage/enabled打开.
确认方法
[root@localhost transparent_hugepage]# grep AnonHugePages /proc/meminfo
AnonHugePages: 405504 kB
[root@localhost transparent_hugepage]# virsh list
Id Name State
----------------------------------------------------
2 numa running
[root@localhost transparent_hugepage]# virsh destroy 2
Domain 2 destroyed
[root@localhost transparent_hugepage]# grep AnonHugePages /proc/meminfo
AnonHugePages: 0 kB
内核线程khugepaged周期性自动扫描内存,并合并成大页内存的功能默认是打开的,
有的时候需要将这个动态分配大页的功能关闭,确保系统中的内存给其他进程有足够多的内存。
[root@computer1 ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@computer1 ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
会关闭这个功能。
执行下面的命令。
[root@computer1 ~]# echo always > /sys/kernel/mm/transparent_hugepage/defrag
[root@computer1 ~]# echo always > /sys/kernel/mm/transparent_hugepage/enabled
会打开这个功能。