內存和磁盤超配雖然能提供更多數量的虛擬機,當該宿主機上大量虛擬機的負載都很高時,輕着影響虛擬機性能,重則引起 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來決定,你有沒有資源創建虛擬機,以及創建在哪個節點上。