偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Hyper-V和NUMA架構(gòu)那點(diǎn)事兒

云計(jì)算
最近連續(xù)做了幾個(gè)微軟虛擬化解決方案的售前演示,其實(shí)對(duì)于大部分客戶來講不會(huì)對(duì)一整套“相對(duì)完善”的方案在第一時(shí)間就看的很深入,反而通常會(huì)更在意一些最基礎(chǔ)的功能和配置選項(xiàng),特別是技術(shù)崗位的人往往都會(huì)有“先入為主”的情緒...

最近連續(xù)做了幾個(gè)微軟虛擬化解決方案的售前演示,其實(shí)對(duì)于大部分客戶來講不會(huì)對(duì)一整套“相對(duì)完善”的方案在***時(shí)間就看的很深入,反而通常會(huì)更在意一些最基礎(chǔ)的功能和配置選項(xiàng),特別是技術(shù)崗位的人往往都會(huì)有“先入為主”的情緒,這很正常,假設(shè)客戶使用了N多年的VMware或者他是思杰鐵粉兒,那么你懷揣著一套microsoft環(huán)境去給人家講的時(shí)候,可能對(duì)方會(huì)先問一些hyper-v管理器的功能,甚至?xí)柕暮芗?xì),不要小看這些看似“不起眼”的功能選項(xiàng),恰恰會(huì)成為不同廠商之間競爭的有力砝碼或成為整套方案基礎(chǔ)架構(gòu)的核心支柱

#################################################################################

這篇文章主要以Hyper-V當(dāng)中的NUMA功能來做一些說明,我本人也是這兩天花時(shí)間查閱了一些資料,希望能給有需要的朋友提供一些幫助

 

【非統(tǒng)一內(nèi)存訪問(NUMA)是一種用于多處理器的電腦記憶體設(shè)計(jì),內(nèi)存訪問時(shí)間取決于處理器的內(nèi)存位置。 在NUMA下,處理器訪問它自己的本地存儲(chǔ)器的速度比非本地存儲(chǔ)器(存儲(chǔ)器的地方到另一個(gè)處理器之間共享的處理器或存儲(chǔ)器)快一些?!?/span>


以上就是就是NUMA架構(gòu)的大致意思,有關(guān)這項(xiàng)技術(shù)的更多概念,大家可以很輕松的在百度或者維基上查閱到。那么它的優(yōu)點(diǎn)和價(jià)值在何處呢?

 

我們以SQL服務(wù)來舉例說明,在此我會(huì)轉(zhuǎn)載一些SQL支持組官方博客的文章http://blogs.msdn.com/b/apgcdsd/archive/2011/11/16/sql-server-numa.aspx

 

下圖就描述了一個(gè)比較形象的NUMA架構(gòu):

我們有兩個(gè)NUMA結(jié)點(diǎn)。每個(gè)NUMA結(jié)點(diǎn)有一些CPU, 一個(gè)內(nèi)部總線,和自己的內(nèi)存,甚至可以有自己的IO。每個(gè)CPU有離自己最近的內(nèi)存可以直接訪問。所以,使用NUMA架構(gòu),系統(tǒng)的性能會(huì)更快。在NUMA結(jié)構(gòu)下,我們可以比較方便的增加CPU的數(shù)目。而在非NUMA架構(gòu)下,增加CPU會(huì)導(dǎo)致系統(tǒng)總線負(fù)載很重,性能提升不明顯。

每個(gè)CPU也可以訪問另外NUMA結(jié)點(diǎn)上的內(nèi)存,但是這樣的訪問,速度會(huì)比較慢。我們要盡量避免。應(yīng)用軟件如果沒有意識(shí)到這種結(jié)構(gòu),在NUMA機(jī)器上,有時(shí)候性能會(huì)更差,這是因?yàn)?,他們?jīng)常會(huì)不自覺的去訪問遠(yuǎn)端內(nèi)存導(dǎo)致性能下降。

154806154.png

####################################################################################

對(duì)NUMA架構(gòu)有了大致了解后,我們來說一說Hyper-V中的虛擬NUMA節(jié)點(diǎn)配置,下圖是我個(gè)人電腦上的CPU屬性,很難過的是——它不支持硬件NUMA架構(gòu);但是對(duì)于某些服務(wù),我們可以實(shí)現(xiàn)軟件模擬多NUMA節(jié)點(diǎn),比如SQL可以通過修改注冊表來實(shí)現(xiàn),大家可以在本文上部的鏈接中查閱

153139992.png

同樣在性能監(jiān)視器中(perfmon.exe),我們可以添加本機(jī)的“hyper-v VM vid NUMA node”來查看當(dāng)前hyper-v使用的節(jié)點(diǎn)數(shù)量,下圖還是我的個(gè)人電腦,只顯示了一個(gè)node0,并且頁面數(shù)量1025851000;用頁面數(shù)量*頁面大?。?k)=4GB,這個(gè)就是我這臺(tái)電腦的實(shí)際物理內(nèi)存

153148734.png

####################################################################################

接下來咱們換一臺(tái)服務(wù)器看看,CPU是兩顆,雙核,支持超線程;那么2*2*2=8,你會(huì)看到8個(gè)邏輯CPU

153150643.png

同樣我們可以看到這臺(tái)設(shè)備支持硬件NUMA;并且是兩個(gè)節(jié)點(diǎn);這樣我們就能自己算一下,32G內(nèi)存+8個(gè)邏輯CPU,分成兩份兒,那么一個(gè)節(jié)點(diǎn)就是16G內(nèi)存+4邏輯CPU

153153960.png

同樣我們在性能監(jiān)視器中可以看到兩個(gè)節(jié)點(diǎn);即node0與node1,并且下面對(duì)應(yīng)的頁面數(shù)量和處理器數(shù)量分別是16GB和4顆LCPU

153155784.png

接下來我們找一臺(tái)虛擬機(jī),在設(shè)置中找到“處理器”下面的“NUMA”;我們可以看到有一個(gè)硬件拓?fù)?,如果選擇了“硬件拓?fù)?rdquo;,則系統(tǒng)會(huì)把這臺(tái)服務(wù)器的NUMA架構(gòu)直接映射過來,以這臺(tái)服務(wù)器為例,也就是“每節(jié)點(diǎn)16G+4LCPU”;但是如果你的這臺(tái)虛擬機(jī)上確實(shí)要跑一些高性能的并行運(yùn)算且需要NUMA架構(gòu)支持,那么簡單的映射物理服務(wù)器配置可能不是***選擇;

 

以下圖為例:這臺(tái)虛機(jī)中有一個(gè)SQL實(shí)例,虛機(jī)配置是4G+4vCPU;我將它配置成了2個(gè)虛擬NUMA節(jié)點(diǎn),那么每節(jié)點(diǎn)就是2vCPU+2G內(nèi)存;且每個(gè)CPU插槽默認(rèn)最多支持1個(gè)節(jié)點(diǎn),于是我這臺(tái)VM就有兩個(gè)socket(插槽);如果你把這臺(tái)虛機(jī)看成物理機(jī)的話,那么它就是一臺(tái)擁有“兩顆物理CPU,每顆CPU雙核或單核雙線程,4G內(nèi)存”的機(jī)器


這樣一來,我們這臺(tái)虛機(jī)就是一臺(tái)支持NUMA架構(gòu)的機(jī)器了,如果結(jié)合本文開篇提到的SQL NUMA環(huán)境;那么我們就能更加靈活的來對(duì)數(shù)據(jù)庫服務(wù)進(jìn)行調(diào)優(yōu)

153158509.png

我們啟動(dòng)這臺(tái)虛機(jī),進(jìn)入系統(tǒng)之后查看windows應(yīng)用程序日志,找到對(duì)應(yīng)的SQL 17152日志,可以看到有兩條,分別顯示了兩個(gè)節(jié)點(diǎn)的配置狀態(tài),node0與node1;這就說明這臺(tái)虛機(jī)已經(jīng)按照之前的規(guī)劃成功的實(shí)現(xiàn)了NUMA架構(gòu)的模擬

153200104.png

同樣在SQL服務(wù)器屬性中,可以在“處理器”選項(xiàng)中看到當(dāng)前識(shí)別到的NUMA節(jié)點(diǎn);你可以讓SQL自動(dòng)的關(guān)聯(lián),或者手動(dòng)關(guān)聯(lián)

153204808.png

對(duì)比一下我本機(jī)的SQL配置,只有一個(gè)節(jié)點(diǎn)

153206282.png

######################################################################################

講到這里,我再轉(zhuǎn)載一下SQL開發(fā)小組的文章:

SQL Server 不僅僅在引擎上支持NUMA, 而且在連接層面上也支持NUMA。如果沒有在連接層面上對(duì)NUMA進(jìn)行設(shè)置的話,那么每一個(gè)連接進(jìn)來,SQL Server會(huì)根據(jù)round-robin方式,選擇NODE 進(jìn)行處理。在NODE內(nèi)部,SQL Server會(huì)選擇CPU負(fù)載***的一個(gè)CPU進(jìn)行處理。這種方法的缺點(diǎn)是,有可能某一個(gè)NODE內(nèi)的所有CPU都很忙,但是另外一個(gè)NODE內(nèi)的所有CPU都很空。導(dǎo)致資源不均衡。這種情況下,使用NUMA架構(gòu)性能反而會(huì)下降,還不如使用非NUMA架構(gòu)。系統(tǒng)能均衡分配CPU資源。

如下圖所示,我們用round-robin方式,可能NUMA NODE0會(huì)非常繁忙,而NUMA NODE1會(huì)非??臻e,系統(tǒng)資源不能充分利用。重要的連接可能會(huì)被分配到NODE0, 導(dǎo)致不能得到及時(shí)處理,性能受到影響

162351382.png

為此,在連接上,我們可以做設(shè)置。對(duì)于重要的操作,我們使用端口1450, 該端口會(huì)綁定NUMA結(jié)點(diǎn)0, 1, 2, 而對(duì)于不重要的操作(可能需要耗費(fèi)大量資源,但不重要的),我們使用端口1433, 該端口會(huì)綁定NUMA結(jié)點(diǎn)3, 這樣,不重要的操作不會(huì)對(duì)重要的操作在性能上有所影響

162353449.png

如何設(shè)置端口對(duì)NUMA結(jié)點(diǎn)的綁定呢?我們可以在偵聽的端口后面加NUMA結(jié)點(diǎn)信息;還是拿剛才演示的那臺(tái)虛機(jī)來說;有2個(gè)NUMA結(jié)點(diǎn),如果要使用NUMA結(jié)點(diǎn)0 那么根據(jù)轉(zhuǎn)換二進(jìn)制的方式,相應(yīng)的數(shù)值是1;這個(gè)就跟我們計(jì)算子網(wǎng)掩碼時(shí)候一樣,在對(duì)應(yīng)的節(jié)點(diǎn)數(shù)下面寫1,然后轉(zhuǎn)換成二進(jìn)制就好

NUMA NODE NUMBER

1,0

Mask for 1

0,1

然后把算好的值加在你要監(jiān)聽的端口后面就行了,比如我要某一項(xiàng)服務(wù)在0,1節(jié)點(diǎn)上都跑,那么在1433端口后面加個(gè)[3]就行了

153228337.png

#######################################################################################

接下來我們在回到Hyper-V的話題上,宿主機(jī)支持NUMA架構(gòu)的話,那么系統(tǒng)會(huì)自動(dòng)把虛機(jī)分配到某一個(gè)節(jié)點(diǎn)上跑,我們還是拿剛才這臺(tái)SQL服務(wù)器來說明;先安裝一個(gè)winrar,然后運(yùn)行自帶的性能測試來給CPU加壓

153231577.png

可以看到虛機(jī)的CPU使用率負(fù)載馬上出現(xiàn)了變化

153233530.png

這個(gè)時(shí)候再來看一下宿主機(jī),在性能監(jiān)視器中添加“hyper-v VM vid partition”,可以看到當(dāng)前這臺(tái)“10.12_TFS_DB”的虛機(jī)跑在了節(jié)點(diǎn)1下(參考preferred NUMA node index=1),并且邏輯CPU使用率只占用了4個(gè)

153236435.png

######################################################################################

那么這里就會(huì)出現(xiàn)一個(gè)問題,一個(gè)NUMA節(jié)點(diǎn)的資源畢竟是有限的,這種架構(gòu)說白了就是給物理資源進(jìn)行了一個(gè)分組;把若干個(gè)邏輯CPU和若干大小的內(nèi)存進(jìn)行了綁定,以此來提高CPU對(duì)內(nèi)存訪問的命中率,有效減少了前端總線的瓶頸;但若此時(shí)多臺(tái)虛機(jī)被分配到了同一節(jié)點(diǎn)時(shí),可偏偏這個(gè)節(jié)點(diǎn)的資源又被吃滿了怎么辦?

其實(shí)這種場景下CPU通常不會(huì)是瓶頸,出問題的往往又是內(nèi)存;于是乎總有一臺(tái)突破臨界點(diǎn)的虛機(jī)要去跨節(jié)點(diǎn)訪問內(nèi)存了;這時(shí)候問題就來了,NUMA架構(gòu)就是為了劃分節(jié)點(diǎn)邊界,使數(shù)據(jù)交互盡量保持在各自節(jié)點(diǎn)內(nèi)進(jìn)行,結(jié)果這么一跨訪問;又會(huì)出現(xiàn)性能下降的問題了,而且不光本節(jié)點(diǎn)的這臺(tái)虛機(jī)受影響,還會(huì)侵占被訪問節(jié)點(diǎn)的資源;那么有沒有什么辦法來人為控制一下呢?肯定是有的,先來看一下跨節(jié)點(diǎn)訪問時(shí)的效果吧

 

我們同時(shí)開啟多臺(tái)虛機(jī),盡可能分配一些大內(nèi)存;如下圖所示

153238620.png

這時(shí)有意思的事情出現(xiàn)了,我們?nèi)_(tái)虛機(jī)DC、DB還有WEB都跑在了節(jié)點(diǎn)1上面,但是呢DC這臺(tái)機(jī)器的“remote physical pages”出現(xiàn)了數(shù)值,這就是遠(yuǎn)程訪問其他節(jié)點(diǎn)的內(nèi)存;我們這臺(tái)宿主機(jī)就倆節(jié)點(diǎn),所以它一定是用到了節(jié)點(diǎn)0的資源;并且你可以通過頁面大小來計(jì)算出它吃了多少非本地內(nèi)存

153241206.png

####################################################################################

為了盡可能避免上述情況的發(fā)生,特別是面對(duì)一些對(duì)性能指標(biāo)很敏感的需求時(shí),我們就要手動(dòng)的來限制一下;下面這個(gè)腳本是從msdn博客上挖來的,可以指定某臺(tái)虛機(jī)與某個(gè)numa節(jié)點(diǎn)來做綁定,鏈接如下:

http://blogs.msdn.com/b/tvoellm/archive/2008/09/28/looking-for-that-last-once-of-performance_3f00_-then-try-affinitizing-your-vm-to-a-numa-node-.aspx

153246852.png

直接執(zhí)行腳本會(huì)出現(xiàn)提示,支持三個(gè)參數(shù):/list列出當(dāng)且宿主機(jī)上的虛機(jī)名稱;/set來做綁定;/clear來解除綁定

153302608.png

下面針對(duì)DC這臺(tái)虛機(jī)來做一個(gè)綁定,讓它去節(jié)點(diǎn)0上面跑,而不要跨節(jié)點(diǎn)的占用資源(關(guān)閉虛機(jī)后運(yùn)行/set參數(shù))

153304663.png

再回到性能監(jiān)視器,可以看到此時(shí)“10.11_DC”這臺(tái)虛機(jī)已經(jīng)轉(zhuǎn)移到了節(jié)點(diǎn)0上面了

153307764.png

再回到宿主機(jī)上觀察CPU使用率,可以看到目前所有邏輯處理器基本都以被占用了(說明節(jié)點(diǎn)0正在專注的為DC虛機(jī)提供服務(wù))

153309858.png

######################################################################################

有關(guān)hyper-v上面的虛擬NUMA節(jié)點(diǎn)先說這么多,在一些有針對(duì)性的需求時(shí),還是很有意義的;這篇文章我也是參考了許多中英博文總結(jié)出來的,個(gè)人感覺很有意義并且認(rèn)為很有必要分享出來,感興趣的朋友們可以抽空測一測,歡迎隨時(shí)與我交流,謝謝!

責(zé)任編輯:王程程 來源: 51CTO博客
相關(guān)推薦

2013-05-03 08:58:37

2013-05-07 10:09:07

2013-05-13 10:28:32

Hyper-VWindows Ser

2013-04-25 17:11:10

Hyper-VNUMA

2014-11-07 10:06:50

Hyper-VVMware ESXi

2011-01-25 10:17:24

微軟Hyper-V c

2011-03-30 09:21:47

Hyper-VSystem Cent

2012-06-26 09:45:05

微軟

2013-06-26 10:25:39

2012-03-14 15:48:58

Windows Ser概述

2010-12-29 10:55:51

Hyper-V

2013-05-13 10:31:51

Hyper-VWindows Ser

2012-09-12 10:35:51

Hyper-V

2014-04-24 11:02:12

Hyper-V虛擬化主機(jī)

2009-07-22 18:44:17

Hyper-V快照備份

2013-10-14 17:58:51

SUSEMicrosoft H

2012-07-26 09:46:52

Hyper-VVMM 2012

2013-08-20 09:28:46

Hyper-V虛擬光纖通道

2013-12-23 09:52:06

Hyper-V VSPVSC

2011-10-11 09:41:22

Hyper-V微軟TechEd
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)