KVM虛擬化技術的-NUMA技術和應用
NUMA技術是解決多CPU共同工作的技術方案,多CPU共同工作主要有3中架構:SMP:Symmetric Multi-Processor),非統一儲存訪問結構(NUMA:Non-Uniform Memory Access),以及海量並行處理結構(MPP:Massive Parallel Processing;
訪問儲存器可以分為兩種:統一儲存器訪問(UMA)和非統一儲存器訪問(NUMA)。
1.SMP技術:
SMP多個CPU通過一個匯流排訪問儲存器,SMP系統有事也被稱為一致記憶體訪問(UMA)結構體系;在SMP系統上,所有的cpu對共享記憶體控制器擁有相同的訪問許可權。cpu之間的訪問這個共享資源的請求會導致擁塞。這個單獨的記憶體控制器能夠管理的記憶體大小也是有限的;
2.MPP模式:
MPP提供了另外一種進行系統擴充套件的方式,它由多個SMP伺服器通過一定的節點網際網路絡進行連線,協同工作,完成相同的任務,從使用者的角度來看是一個伺服器系統。其基本特徵是由多個SMP伺服器通過節點網際網路絡連線而成,每個節點只訪問自己的本地資源(記憶體、儲存等),是一種完全無共享(Share Nothing)結構,因而擴充套件能力最好,理論上其擴充套件無限制,目前的技術可實現512個節點互聯,數千個CPU。目前業界對節點網際網路絡暫無標準,如 NCR的Bynet,IBM的SPSwitch,它們都採用了不同的內部實現機制。但節點網際網路僅供MPP伺服器內部使用,對使用者而言是透明的。
3.NUMA技術
NUMA模式是每個處理器有自己的儲存器,每個處理也可以訪問別的處理器的儲存器;與UMA相比,UMA提供了一個集中的記憶體池(因此在一定數量的處理器之後無法擴充套件),NUMA架構將記憶體劃分為相對於微處理器的本地和遠端記憶體。
4.KVM虛擬機器NUMA調優
NUMA架構每個處理器都可以訪問自己的儲存器和其他處理器的儲存器,訪問自己的儲存器要比訪問其他的儲存器快的多,速度相差10-100倍,所以NUMA調優的目的就是讓處理器儘量訪問自己的儲存器,以提高訪問速度。
#安裝 numactl
[root@node3 ~] yum install numactl
#安裝後出現以下三個命令
#numactl 用於控制 程序與共享儲存的 NUMA 技術機制
#numademo
#numastat 提供了一個監測NUMA架構的工具
[root@node3 ~] # numactl --hardware #共有2個node,各領取16個CPU和128G記憶體
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23
node 0 size: 131037 MB
node 0 free: 3019 MB
node 1 cpus: 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31
node 1 size: 131071 MB
node 1 free: 9799 MB
node distances:
node 0 1
0: 10 20
1: 20 10
[root@node3 ~] # numactl --cpubind=0 --membind=0 python param #python在node0中執行
[root@node3 ~] # numactl --cpubind=1 --membind=1 java param #java在node1中執行
[root@node3 ~] # numactl --interleave=all mongod -f /etc/mongod.conf #分配所有的node供mongodb使用
[root@node3 ~]# numastat #通過numastat命令可以檢視numa狀態
node0 node1
numa_hit 1775216830 6808979012 #使用本節點記憶體次數
numa_miss 4091495 494235148 #計劃使用本節點記憶體而被排程到其他節點次數
numa_foreign 494235148 4091495 #計劃使用其他節點記憶體而使用本地記憶體次數
interleave_hit 52909 53004 #交叉分配使用的記憶體中使用本節點的記憶體次數
local_node 1775205816 6808927908 #在本節點執行的程式使用本節點記憶體次數
other_node 4102509 494286252 #在其他節點執行的程式使用本節點記憶體次數
[root@node3 ~]# virsh list --all
Id Name State
----------------------------------------------------
17 centos7.0 running
20 centos7.2 running
[root@node3 ~]# virsh numatune 20 #命令可以檢視或者修改虛擬機器的NUMA配置
numa_mode : strict
numa_nodeset :
[root@node3 ~]# virsh vcpuinfo centos7.2 #檢視虛擬機器的VCPU排程資訊
VCPU: 0
CPU: 1 #vcpu 0 被呼叫到cpu1上
State: running #使用狀態
CPU time: 17.6s #使用時間
CPU Affinity: yyyy 可以使用的物理CPU內部的邏輯核
[root@node3 ~]# virsh emulatorpin centos7.2 #檢視虛擬機器呼叫那些CPU
emulator: CPU Affinity
----------------------------------
*: 0-7
[root@node3 ~]# virsh numatune centos7.2 #設定虛擬機器CPU在部分物理CPU之間排程
numa_mode : strict
numa_nodeset :
[root@node3 ~]# virsh emulatorpin centos7.2 4-7 --live
[root@node3 ~]# virsh emulatorpin centos7.2
emulator: CPU Affinity
----------------------------------
*: 4-7
[root@node3 ~]# virsh dumpxml 2 |grep vcpu -C2 #檢視配置看VCPU排程資訊
<memory unit='KiB'>4188160</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static' current='2'>4</vcpu>
<cputune>
<emulatorpin cpuset='4-7'/>
CPU繫結技術和原理:
CPU繫結實際是通過Libvirt通過CGroup來實現的,CGroup直接去繫結KVM虛擬機器程序也可以。CGroup不僅可以繫結CPU,也可以繫結虛擬機器磁碟,網路的資源控制;
#強制VCPU和物理CPU一對一的繫結
[[email protected] ~]# virsh vcpupin centos7.2 0 4 #繫結VCPU 0和物理CPU 4
[[email protected] ~]# virsh vcpupin centos7.2 1 5
[[email protected] ~]# virsh vcpuinfo centos7.2
VCPU: 0
CPU: 4
State: running
CPU time: 17.9s
CPU Affinity: ----y---
VCPU: 1
CPU: 5
State: running
CPU time: 10.6s
CPU Affinity: -----y--
[[email protected] ~]# virsh dumpxml 2 |grep vcpu -C2 #檢視配置檔案資訊
<memory unit='KiB'>4188160</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static' current='2'>4</vcpu>
<cputune>
<vcpupin vcpu='0' cpuset='4'/>
<vcpupin vcpu='1' cpuset='5'/>
<vcpupin vcpu='2' cpuset='6'/>
<emulatorpin cpuset='4-7'/>
</cputune>
相關推薦
R語言統計分析技術研究——嶺回歸技術的原理和應用
gts 根據 誤差 med 分享 jce not -c rt4 嶺回歸技術的原理和應用
KVM虛擬化技術的-NUMA技術和應用
NUMA技術是解決多CPU共同工作的技術方案,多CPU共同工作主要有3中架構:SMP:Symmetric Multi-Processor),非統一儲存訪問結構(NUMA:Non-Uniform Memory Access),以及海量並行處理結構(MPP:Ma
KVM虛擬化技術之使用Qemu-kvm建立和管理虛擬機器
一 .KVM 簡介 KVM (名稱來自英語: Kernel-basedVirtual Machine 的縮寫,即基於核心的虛擬機器) , 是一種用於Linux核心中的虛擬化基礎設施,可以將Linux核心轉化為一個hyper
KVM虛擬化技術的-熱新增硬碟和儲存池
一、熱新增硬碟 方法一: [[email protected] ~]# virsh list #列出虛擬機器 Id Name State --------------------
虛擬化技術中KVM,Xen,Qemu的區別和聯絡
虛擬化型別 全虛擬化(Full Virtualization) 全虛擬化也成為原始虛擬化技術,該模型使用虛擬機器協調guest作業系統和原始硬體,VMM在guest作業系統和裸硬體之間用於工作協調,一些受保護指令必須由Hypervisor(虛擬機器管理程式)來捕獲處理
KVM虛擬化技術
kvm虛擬化 KVM虛擬化虛擬化介紹: VMware,Hyper-v, XenSer, XenClient,
linux-KVM虛擬化技術
linux運維 計算機網絡 達內 紅帽 linux系統操作 kvm虛擬化 虛擬化概述Virtualization 資源管理– x個物理資源 --> y個邏輯資源– 實現程度:完全、部分、硬件輔助(CPU)手動新建一臺虛擬機: 虛擬機名字:exam
linux運維、架構之路-KVM虛擬化技術
sna 運維 3.1 png 配置 tools 關閉 wall ati 一、雲計算概述 雲計算:是一種資源使用和交付模式 虛擬化:一種具體的技術,用來將物理機虛擬成為多個相互獨立的虛擬機。雲計算不等於虛擬化,雲計算是使用了虛擬化的技術做支撐 二、KV
KVM虛擬化技術與DNS
rsynckvm命令1、查看虛擬機列表[root@room8pc16 review]# virsh list --all2、打開控制臺[root@room8pc16 review]# virt-manager 3、連接虛擬機[root@room8pc16 review]# virt-viewer rh7-no
KVM虛擬化技術(二)
LinuxKVMvirt-instaKVM虛擬化技術(二)===============================================================================概述:============================================
讀KVM虛擬化技術實戰與原理解析
1、軟體虛擬化和硬體虛擬化:實現虛擬化的重要一步在於:虛擬化層必須能夠截獲計算元件對物理資源的直接訪問,並將其重定向到虛擬資源池中。硬體虛擬化,就是物理平臺本身提供了對特殊指令的截獲和重定向的硬體支援 2、準虛擬化與全虛擬化:改動客戶作業系統,使他以為自己執行在虛擬環境下,能夠與虛擬機器監控
一篇文章詳解大資料技術和應用場景
什麼是大資料 說起大資料,估計大家都覺得只聽過概念,但是具體是什麼東西,怎麼定義,沒有一個標準的東西,因為在我們的印象中好像很多公司都叫大資料公司,業務形態則有幾百種,感覺不是很好理解,所以我建議還是從字面上來理解大資料,在維克托邁爾-舍恩伯格及肯尼斯庫克耶編寫的《大資料時代》提到了大資料的4個特徵:
視訊影象的超解析度技術原理和應用場景
前言 影象和視訊通常包含著大量的視覺資訊,且視覺資訊本身具有直觀高效的描述能力,所以隨著資訊科技的高速發展,影象和視訊的應用逐漸遍佈人類社會的各個領域。近些年來,在計算機 影象處理、計算機視覺和機器學習等 領域中,來自工業界和學術界的許多學者和專家都持續關注著視訊影象的超解析度技術這個基
語音編解碼技術演進和應用選型
本文來自現網易雲音樂音視訊實驗室負責人劉華平在LiveVideoStackCon 2017大會上的分享,並由LiveVideoStack整理而成。分享中劉華平以時間為主線,講述了語音編解碼技術的演進路線及實際應用中的技術選型。 文 / 劉華平 整理
物聯網核心技術M2M的構成、基本特徵和應用類別
現階段,許多公司都在引進新的面向客戶的相關產品和服務以改善現有的產品,增加收益並且創造新的收益機會。根據跨國通訊公司沃達豐的M2M晴雨表資料,在已經應用 M2M 技術的企業中,有66%聲稱他們的戰略側重於外部利益相關者,M2M 的趨勢已經顯而易見。 全球已經有超過四分之一的企業在應用 M
物聯網技術NB-IOT的網路和應用場景
NB-IoT的全稱是Narrow Band-Internet of Things,是基於蜂窩網路的窄帶物聯網技術,聚焦於低功耗廣域網,支援物聯網裝置在廣域網的蜂窩資料連線,可直接部署與LTE網路,可降低部署成本和實現平滑升級,是一種可在全球範圍內廣泛應用的一門物聯網技
系統技術非業餘研究 » Erlang match_spec引擎介紹和應用
match_spec是什麼呢? A “match specification” (match_spec) is an Erlang term describing a small “program” that will try to match something (either the para
大資料技術和應用
什麼是大資料 大資料是指無法在一定時間內用常規軟體工具對其內容進行抓取、管理和處理的資料集合。大資料技術,是指從各種各樣型別的資料中,快速獲得有價值資訊的能力。適用於大資料的技術,包括大規模並行處理資料庫,資料探勘電網,分散式檔案系統,分散式資料庫,雲端計算平臺
BC:帶你溫習並解讀《中國區塊鏈技術和應用發展白皮書》—區塊鏈技術發展路線圖
BC:帶你溫習並解讀《中國區塊鏈技術和應用發展白皮書》—區塊鏈技術發展路線圖 區塊鏈通用技術需求 區塊鏈應用的技術需求,除分散式系統、密碼學演算法、成員管理等通用技術外,還包括以下技術需求: 1、模組化與外掛化 2、高效能 3、資料一致性
BC:帶你溫習並解讀《中國區塊鏈技術和應用發展白皮書》—區塊鏈標準體系框架
BC:帶你溫習並解讀《中國區塊鏈技術和應用發展白皮書》—區塊鏈標準體系框架 區塊鏈標準體系框架 1、基礎標準2、業務和應用標準3、過程和方法標準4、可信和互操作標準 5、資訊保安標準 區塊鏈標準化重點方向 基礎標準:基礎標準對區塊鏈技術研發和應用發展的核心