1. 程式人生 > >[openstack]NFVI特性之虛擬機器繫結CPU

[openstack]NFVI特性之虛擬機器繫結CPU

內容系本人學習、研究和總結,如有雷同,實屬榮幸!

虛擬機器CPU繫結特性,是NFVI的一個重要特性。該特性在openstack的K版本合入社群。
CPU繫結特性是建立實時虛擬機器的前提。

CPU繫結特性,主要解決虛擬機器互相正確pCPU導致的延遲。
該特性主要用於計算密集型/要求CPU低延遲的使用場景。

這塊會涉及多個概念,SMT/CMP/SMP(大家可以自行百度瞭解內容)。簡單的說一臺主機可以由多個
CPU,每個CPU可以有多個cores,每個core可以有多個thread。

openstack的CPU繫結特性允許你指定vCPUs是獨佔繫結core還是獨佔繫結thread。

使用方法

openstack提供了兩個引數,可以在flavor中配置(也可以在image中配置,這裡主要描述flavor的配置方法)。

  • cpu_policy
  • cpu_thread_policy

cpu_policy支援使用shared/dedicated進行配置。shared表示不獨佔繫結pCPUs,dedicated表示獨佔繫結pCPUs。

cpu_thread_policy支援使用prefer/isolate/require三種指定方式。prefer表示如果主機提供thread則使用thread方式繫結,沒有則使用core繫結;isolate表示使用core繫結;require表示必須使用thread繫結。

值得說明的是,使用cpu_thread_policy為prefer或者require時,openstack的thread分配策略是儘量佔滿一個core,然後再使用下一個core上的thread,從而避免導致thread/core碎片。這個從下邊的例子也可以看出來。

使用例子

主機共有3個CPU,3個node:
CPU1有2個core,4個thread。
CPU2有1個core,2個thread。
CPU3有1個core,2個thread。

驗證core繫結策略

openstack flavor create –ram 1024 –vcpu 2 –disk 1 isolate
openstack flavor set isolate –property hw:cpu_policy=dedicated –property hw:cpu_thread_policy=isolate

openstack server create –flavor isolate –image cirros-0.3.4-x86_64-uec isolate
建立成功。

openstack server create –flavor isolate –image cirros-0.3.4-x86_64-uec isolate2
建立成功。
原因:openstack預設一個numa node。雖然還有兩個core,但是不在1個node。openstack因此返回失敗。

openstack flavor create –ram 1024 –vcpu 1 –disk 1 isolate_1u
openstack flavor set isolate_1u –property hw:cpu_policy=dedicated –property hw:cpu_thread_policy=isolate

openstack server create –flavor isolate_1u –image cirros-0.3.4-x86_64-uec isolate_1u1
建立成功。
openstack server create –flavor isolate_1u –image cirros-0.3.4-x86_64-uec isolate_1u2
建立成功。
openstack server create –flavor isolate_1u –image cirros-0.3.4-x86_64-uec isolate_1u3
建立失敗,因為已經沒有空餘的core了。

通過xml也可以看出3個虛擬機器使用了0,2,4,6四個pCPUs。

驗證thread分配策略

openstack flavor create –ram 1024 –vcpu 2 –disk 1 prefer
openstack flavor set prefer –property hw:cpu_policy=dedicated –property hw:cpu_thread_policy=prefer
openstack server create –flavor prefer –image cirros-0.3.4-x86_64-uec prefer
建立失敗,因為資源不足。

刪除虛擬機器isolate後,重新建立prefer,建立成功。
通過xml可以看出使用了0,1兩個pCPUs。
openstack的分配策略是按順序使用未用的pCPUs。

這樣做的好處,避免thread碎片。

require的行為

openstack flavor create –ram 1024 –vcpu 2 –disk 1 require
openstack flavor set require –property hw:cpu_policy=dedicated –property hw:cpu_thread_policy=require
openstack server create –flavor require –image cirros-0.3.4-x86_64-uec require
openstack server create –flavor require –image cirros-0.3.4-x86_64-uec require2

可以建立成功,分別使用0,1和2,3

openstack server create –flavor require –image cirros-0.3.4-x86_64-uec require3
建立失敗,因為沒有資源了。

相關推薦

[openstack]NFVI特性虛擬機器CPU

內容系本人學習、研究和總結,如有雷同,實屬榮幸! 虛擬機器CPU繫結特性,是NFVI的一個重要特性。該特性在openstack的K版本合入社群。 CPU繫結特性是建立實時虛擬機器的前提。 CPU繫結特性,主要解決虛擬機器互相正確pCPU導致的延遲。

NFVI特性虛擬機綁定CPU

openstack虛擬機CPU綁定特性,是NFVI的一個重要特性。該特性在openstack的K版本合入社區。 CPU綁定特性是創建實時虛擬機的前提。CPU綁定特性,主要解決虛擬機互相正確pCPU導致的延遲。 該特性主要用於計算密集型/要求CPU低延遲的使用場景。這塊會涉及多個概念,SMT/CMP/SMP(大

php5.3新特性延遲靜態

基於PHP版本: 5.3.5 PHP5.3 以後引入了延遲靜態繫結: static(關鍵字) 類似於 self(關鍵字) , 但它指向的是被呼叫的類(Document) 而不是包含類(DomainObject) , static 和 self 的區別: 主要的作用就

CentOS7.1 KVM虛擬化虛擬機器記憶體、CPU調整

一、調小虛擬機器記憶體 調小虛擬機器記憶體可以動態實現,不用關機 1.檢視當前記憶體大小 [plain] view plain copy [[email protected] ~]# virsh dominfo vm1-clone | gr

NFVI特性實時虛擬機()二

openstack接前文,之前講了openstack中實時虛擬機特性都作了那些特有的實現,這些代碼大部分在M版本中已經合入。但是關於qemu本身消耗的CPU時間,並沒有很好的處理。這塊的設計和代碼實現一直到P版本,也就是最近才合入到主幹代碼中。我們知道,openstack中nova根據虛擬機的flavor給虛

關於對cpu的理解和kvm虛擬機器到物理cpu

邏輯CPU個數是指cat /proc/cpuinfo 所顯示的processor的個數 # cat /proc/cpuinfo | grep "processor" | wc -l物理CPU個數: 物理CPU個數,是指physical id(的值)的數量 # cat /proc/cpuinfo | grep

二、Springmvc+Mybatis 引數預設引數 簡單型別 POJO POST亂碼問題

web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/

WPF日積月累TreeView動態

一、概述 本文演示瞭如何遞迴生成資料,用於繫結TreeView以及TreeItem的雙擊事件。 二、參考程式碼 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentMod

openstack使用NFS作為虛擬機器儲存

這個其實很簡單,就是加一個儲存伺服器,把儲存伺服器掛載到各計算節點的instances存放路徑,建立虛擬機器時就自動使用共享儲存了。 操作過程: 一. NFS伺服器安裝 1.在儲存伺服器安裝ubuntu16.04作業系統 2. sudo apt install nfs-kernel-

java專案搭建個人網站虛擬機器安裝Linux6.9伺服器版本(一)

因個人不想購買阿里伺服器等原因,決定在自身電腦安裝VM10虛擬機器作為測試伺服器使用... 虛擬機器的安裝:這裡寫連結內容 參看這個說的很詳細。因為我自己本身有VM10的虛擬機器,這裡我使用的是VM10的虛擬機器版本..推薦看的虛擬機器安裝文章是12版本的..大致一樣....都可以使用.

asp net夜話八 資料控制元件

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

NGINX原理 CPU CPU親和性

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

JAVA虛擬機器(JVM)劃重點 第二章 Java記憶體區域與記憶體溢位異常 虛擬機器物件

本部落格參考《深入理解Java虛擬機器》(第二版)一書,提取重點知識,再加以個人的理解編寫而成。轉載請標明來源。 JAVA虛擬機器(JVM)劃重點 第二章 Java記憶體區域與記憶體溢位異常 之 虛擬機器物件 Java物件的建立 1、類載入過程

react 將函式到元件例項

1. 在Constructor中繫結(ES2015) 2. 類屬性(第三階段提案) 3. 在Render中使用bind繫結 4. 在Render中使用箭頭函式 在Constructor中繫結(ES2015) class Foo extends C

Vijava 學習筆記 虛擬機器連線

package com.vmware.client; import com.vmware.util.ClientSesion; import com.vmware.vim25.VirtualMachineAffinityInfo;

『中級篇』docker虛擬機器建立vagrant技巧(番外篇)(81)

原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝! 原文連結地址:『中級篇』docker之虛擬機器建立vagrant技巧(番外篇)(81) 之前一直用的原生的centos7的源映象安裝虛擬機器,然後在這個基礎執行shell指令碼,經常出

深入瞭解Java虛擬機器記憶體

在討論JVM記憶體區域分析之前,先來看一下Java程式具體執行的過程: Java 程式的執行過程:Java 原始碼檔案(.Java檔案)-> Java Compiler(Java編譯器)->Java 位元組碼檔案(.class檔案)->類載

OpenStack-Queens——環境準備-虛擬機器安裝

OpenStack環境部署 Openstack是一個分散式系統,由不同的元件共同支援整個雲平臺的執行,根據不同的需求,能夠靈活地設計整個OpensStack架構,不同的元件裝在不同的物理機上,甚至某個元件下的子服務而也可裝在不同的物理機上,一般來說,一個OpenStack平

第一章:OEL6.8虛擬機器安裝

  一、在   Windows 上安裝  VMware Workstation  具體安裝請參考《VMware Workstation 15 Pro 永久啟用金鑰 下載》 二、建立虛擬機器 1:選擇“新建虛擬機器“ 2:選擇“典型”

D001.1複製貼上玩大資料虛擬機器的安裝

0x00 教程內容 安裝虛擬機器 NAT網路配置 0x01 安裝虛擬機器 1.獲取虛擬機器(Centos7) 官網下載() 關注公眾號:邵奈一(待補充連結),回覆:Centos7。自動獲取百度雲