内存和磁盘超配虽然能提供更多数量的虚拟机,当该宿主机上大量虚拟机的负载都很高时,轻着影响虚拟机性能,重则引起 qemu-kvm 相关进程被杀,即虚拟机被关机。因此对于线上稳定性要求高的业务,建议不要超配 RAM 和 DISK,但可适当超配 CPU。建议这几个参数设置为:
CPU: CONF.cpu_allocation_ratio = 4
RAM: CONF.ram_allocation_ratio = 1.0
DISK: CONF.disk_allocation_ratio = 1.0
RAM-Reserve: CONF.reserved_host_memory_mb = 2048
DISK-Reserve: CONF.reserved_host_disk_mb = 20480
在OpenStack中,默认的CPU超配比例是1:16,内存超配比例是1:1.5。当宿主机使用swap交换分区来为虚拟机分配内存的时候,则虚拟机的性能将急速下降。生产环境上不建议开启内存超售(建议配置比例1:1)。另外,建议设置nova.conf文件中的reserved_host_memory_mb 参数,即内存预留量(建议至少预留4GB),保证该部分内存不能被虚拟机使用。
vim /etc/nova/nova.conf
[DEFAULT]
reserved_host_memory_mb=4096
#磁盘预留空间,这部分空间不能被虚拟机使用
reserved_host_disk_mb= 10240
默认OpenStack的CPU超配比例是1:16,内存超配比例是1:1.5。下面配置的就是这个比例,你可以自己算一下,cat /proc/cpuinfo里面的逻辑核数,再x16就是你能够分配给虚拟机的。内存也是类似。
物理cpu数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
单块cpu核数
cat /proc/cpuinfo| grep "cpu cores"|wc -l
总核数 = 物理CPU个数 × 每颗物理CPU的核数
cpu和内存的超售目的就是为了资源利用的最大化
配置文件nova.conf中修改了如下参数
[DEFAULT]
cpu_allocation_ratio=16.0
ram_allocation_ratio=1.5
想要让超算生效还需要修改一个配置core filter 核心过滤器
nova.conf配置文件添加超算配置以后,还需要在schler调度原则上加一条规则:corefilter ,然后重启nova-schelder服务生效。
CPU超售的详细说明与使用方法
这个值其实是给nova-scheduler看的,scheduler来决定,你有没有资源创建虚拟机,以及创建在哪个节点上。
网友评论