原文链接:

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 
会打开这个功能。


Logo

更多推荐