使用内存大页
介绍如何在宿主机启用内存大页给虚拟机使用。
内置私有云支持虚拟机使用内存大页(Hugepage)。使用内存大页有助于减少内存碎片,提高虚拟机访问内存效率,从而提高虚拟机性能。
通过设置每台宿主机的配置(/etc/yunion/host.conf) hugepages_option 来关闭或开启大页,该选项的值有三个:
-
disable: 不开启大页支持
-
transparent:开启透明大页支持,该选项为默认选项。启用透明大页支持后,操作系统会尽力而为地为虚拟机使用大页内存,并且自动地将虚拟机的普通内存合并为大页内存。
-
native:开启原生大页内存支持,这种模式需要显式地分配大页内存池,并且虚拟机使用的内存需要预先从大页内存池中预留分配,并作为参数传递给虚拟机使用。这种方式能够保证内存的连续性,可以分配1G的大页内存,提供最佳的性能。
使用透明大页支持比较方便,只需要设置 hugepages_option 为 transparent。但这种方式无法使用1G的大页,且并不保证虚拟机总是使用大页内存。
开启native大页内存
通过 ocboot 部署的环境默认会安装 oc-hugetlb-gigantic-pages.service
服务,可使用 systemctl status oc-hugetlb-gigantic-pages.service
查看
部署时开启大页
宿主机为 x86_64 架构非控制节点默认开启,且内存超过 30G时生效,预留内存为总内存的10%,最大预留20G内存。可修改 config.yaml 中 enable_hugepage 控制开启或者关闭大页内存
as_host: true
# 虚拟机强行作为 OneCloud 私有云计算节点(默认为 false)。开启此项时,请确保as_host: true
as_host_on_vm: true
# 是否宿主机开启大页内存(宿主机为 x86_64 架构非控制节点默认开启,且内存超过 30G 时生效,预留内存为总内存的20%,最大预留32G内存)
enable_hugepage: true