2017-06-05 276 views
-2

我在ESXi Sever中使用CentOS VM。我想增加1G的Hugepagesize。虚拟机内的Hugepagesize不会增加到1G

我跟着链接: http://dpdk-guide.gitlab.io/dpdk-guide/setup/hugepages.html

我执行的小脚本,以检查是否1 GB支持:

[[email protected] ~]# if grep pdpe1gb /proc/cpuinfo >/dev/null 2>&1; then echo "1GB supported."; fi 
1GB supported. 
[[email protected] ~]# 
  1. 我加入default_hugepagesz = 1GB hugepagesz = 1G大页面= 4到/ etc /默认/ grub中。
  2. 在grub2-mkconfig -o /boot/grub2/grub.cfg
  3. 重新引导VM。

但是我仍然可以看到2048KB(2MB)的Hugepagesize。

[[email protected] ~]# cat /proc/meminfo | grep -i huge 
AnonHugePages:  8192 kB 
HugePages_Total: 1024 
HugePages_Free:  1024 
HugePages_Rsvd:  0 
HugePages_Surp:  0 
**Hugepagesize:  2048 kB** 
[[email protected] ~]# 

VM的以下是详细说明:

记忆
[[email protected] ~]# uname -a 
Linux localhost.localdomain 3.10.0-514.10.2.el7.x86_64 #1 SMP Fri Mar 3 00:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 
[[email protected] ~]# 

[[email protected] ~]# cat /proc/cpuinfo | grep -i flags 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid 
[[email protected] ~]# 

8GB和2级的CPU被分配给虚拟机。

+0

你的'dmesg'中有什么? ESXi应该配置为1G页面分配和支持;虚拟机管理程序没有真正的1G物理页面时,guest不能请求1G页面。 ESXi可能不支持1 G页面。例如,使用RedHat主机时,应在主机操作系统中分配1GB页面:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Tuning_and_Optimization_Guide/sect-Virtualization_Tuning_Optimization_Guide-Memory-Huge_Pages-1GB-runtime .html – osgx

+0

[root @ localhost〜]#dmesg | grep -i huge [0.000000]命令行:BOOT_IMAGE =/vmlinuz-3.10.0-514.10.2.el7.x86_64 root =/dev/mapper/cl-root ro crashkernel = auto rd.lvm.lv = cl/root rd.lvm.lv = cl/swap rhgb quiet default_hugpagesz = 4GB hugepagesz = 1GB hugepages = 4 – mbhole

+0

不是单个grep,而是完整的dmesg。和esxi设置和版本。该指南“http://dpdk-guide.gitlab.io/dpdk-guide/setup/hugepages.html”不适用于ESXi虚拟化解决方案,它适用于真正的操作系统(实际硬件上的Linux)。 – osgx

回答

0

1gb hugepage支持和guest虚拟机操作系统支持/启用的CPU标志不足以获得1 GB的虚拟化环境中的巨大页面。

(PAE和x86_64之前2MB或4 MB)上PMD巨大页两者的想法和PUD水平(1 GB)是创建巨大尺寸的对准虚拟区域映射到物理存储器的一些巨大的区域(如我明白,它应该也一致)。虚拟化管理程序的额外虚拟化级别现在有三个(或四个)内存级别:来宾操作系统中的应用程序虚拟内存,被访客操作系统视为物理内存的一些内存(它是由虚拟化解决方案管理的内存:ESXi,Xen,KVM ,....)和真实的物理内存。我们有理由认为,大页面想法应该在所有三个层次上具有相同大小的巨大区域,以便有用(生成更少的TLB未命中,使用更少的页表结构来描述大量内存 - grep“需要大于4KB的页面”) DickSites's "Datacenter Computers: modern challenges in CPU design", Google, Feb2015)。

因此,要使用Guest OS中某个级别的巨大页面,您应该在物理内存(在您的主机操作系统中)和虚拟化解决方案中拥有相同大小的页面。 如果主机操作系统和虚拟化软件不适用于主机操作系统和虚拟化软件,则无法在guest虚拟机中有效使用大型页面。 (有些像qemu或bochs可能会模仿它们,但是这将会从慢到慢)。而且,当你需要2 MB和1 GB的巨大页面时:你的CPU,主机操作系统,虚拟系统和客户操作系统都应该支持它们(和主机系统应该有足够的对齐的连续物理内存来分配1 GB页面,否则您可能无法将此页面分割到NUMA中的多个套接字中)。

不知道ESXi的,但也有一些链接,

程序8.2。在启动时

  1. 分配1 GB大页面要在引导分配大内存页的大小不同,请使用以下命令,指定大页面的数量。此示例分配4个1 GB大页面和1024个2 MB大页面:'default_hugepagesz=1G hugepagesz=1G hugepages=4 hugepagesz=2M hugepages=1024'更改此命令行以指定引导时分配的不同数量的大页面。

注意接下来的两个步骤还必须在引导时第一次分配1 GB大页面时完成。

  • 装入2 MB和1 GB巨大在主机上的网页:

    #MKDIR的/ dev/hugepages1G #安装-t hugetlbfs的-o页大小= 1G无/开发/ hugepages1G #的mkdir的/ dev/hugepages2M #安装-t hugetlbfs的-o页面大小= 2M没有的/ dev/hugepages2M

  • 的libvirtd重新启动上启用来宾使用1个GB大页面:

    #服务重启libvirtd

  • 1GB大页面现在可供客人使用。

    通过增加页面大小,可以减少页表,并减少对TLB缓存的压力。 ... vm.nr_hugepages = 256 ...重新启动系统(注意:这是关于主机和主机操作系统的物理重启)...设置Libvirt以使用巨大页面KVM_HUGEPAGES=1 ...设置访客使用巨大页面

    不足:最后,hypervisor厂商完全可以采用大页面之前采取一些生产周期。例如,尽管x86-64系统上的guest虚拟机可以使用它们,但VMware的ESX服务器目前不支持管理程序中的1GB大页面,即 。

    我们发现,大量的页面在一系列的管理程序相冲突与轻量级内存管理(例如,ESX,KVM)跨架构(如ARM,x86-64)和基于容器的技术。

    在VMware ESX Server 3.5和VMware ESX Server 3i的V3.5引入2MB至虚拟化环境 大页面支持。在早期版本的ESX Server中,客户操作系统大页面使用小页面模拟 页面。这意味着,即使客户操作系统使用大页面,它也不会获得减少TLB未命中的性能优势。 ESX Server 3.5和ESX Server 3i v3.5中的增强型大页面支持使PAE模式下的32位虚拟机和64位虚拟机能够使用大型页面 。