溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進行numa架構(gòu)與性能的解析

發(fā)布時間:2021-12-30 16:05:42 來源:億速云 閱讀:180 作者:柒染 欄目:云計算

如何進行numa架構(gòu)與性能的解析,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

說到服務(wù)器的NUMA架構(gòu),大家或許都知道。NUMA架構(gòu)在中大型系統(tǒng)上一直非常盛行,也是高性能的解決方案,尤其在系統(tǒng)延遲方面表現(xiàn)都很優(yōu)秀。但NUMA架構(gòu)對服務(wù)器的相關(guān)性能到底有什么影響,怎樣設(shè)置會更好呢?小編在此解析一下。

  1、什么是NUMA

  NUMA(Non Uniform Memory Access Architecture)是一種用于多處理器的電腦記憶體設(shè)計,內(nèi)存訪問時間取決于處理器的內(nèi)存位置。 在NUMA下,處理器訪問它自己的本地存儲器的速度比非本地存儲器(存儲器的地方到另一個處理器之間共享的處理器或存儲器)快一些。

  NUMA架構(gòu)在邏輯上遵循對稱多處理(SMP)架構(gòu)。 它是在二十世紀九十年代被開發(fā)出來的,開發(fā)商包括Burruphs (優(yōu)利系統(tǒng)), Convex Computer(惠普),意大利霍尼韋爾信息系統(tǒng)(HISI)的(后來的Group Bull),Silicon Graphics公司(后來的硅谷圖形),Sequent電腦系統(tǒng)(后來的IBM),通用數(shù)據(jù)(EMC), Digital (后來的Compaq ,HP)。 這些公司研發(fā)的技術(shù)后來在類Unix操作系統(tǒng)中大放異彩,并在一定程度上運用到了Windows NT中。

  NUMA 的主要優(yōu)點是伸縮性。NUMA 體系結(jié)構(gòu)在設(shè)計上已超越了 SMP 體系結(jié)構(gòu)在伸縮性上的限制。通過 SMP,所有的內(nèi)存訪問都傳遞到相同的共享內(nèi)存總線。這種方式非常適用于 CPU 數(shù)量相對較少的情況,但不適用于具有幾十個甚至幾百個 CPU 的情況,因為這些 CPU 會相互競爭對共享內(nèi)存總線的訪問。NUMA 通過限制任何一條內(nèi)存總線上的 CPU 數(shù)量并依靠高速互連來連接各個節(jié)點,從而緩解了這些瓶頸狀況。

  2、NUMA的幾種架構(gòu)方案

  NUMA 系統(tǒng)通常比一致內(nèi)存訪問系統(tǒng)(UMA)更加經(jīng)濟且性能更高。一致內(nèi)存訪問系統(tǒng)必須平等地為所有 CPU 提供內(nèi)存,而 NUMA 系統(tǒng)則能夠為直接連接到 CPU 的內(nèi)存提供高速互連,同時為與 CPU 相隔較遠的內(nèi)存提供較為便宜但更高延遲的連接。

使用 NUMA 時,會經(jīng)常遇到下面幾種方案,以SQL SERVER數(shù)據(jù)庫為例。(參閱technet資料)

A. 沒有端口到 NUMA 的關(guān)聯(lián)

這是具有硬件 NUMA 和單個 SQL Server 實例的計算機中的默認設(shè)置。所有通信流量都通過一個單獨的端口輸入并采用循環(huán)方式分布到任何可用的 NUMA 節(jié)點。NUMA 增大了內(nèi)存和 CPU 訪問的區(qū)域并增加了 I/O 和惰性編寫器線程的數(shù)量。在建立連接后會立即將其作用域限定為此節(jié)點。它提供了 NUMA 節(jié)點間的自動負載平衡??蛻舳藨?yīng)用程序可以連接到單個端口,而且可以輕松地進行部署。

如何進行numa架構(gòu)與性能的解析

B. 將單個端口關(guān)聯(lián)到多個節(jié)點以提高主要應(yīng)用程序的性能

將一個端口關(guān)聯(lián)到多個用于主要應(yīng)用程序的硬件 NUMA 節(jié)點。將第二個端口關(guān)聯(lián)到另一個用于第二個次要應(yīng)用程序的硬件 NUMA 節(jié)點。用于這兩個應(yīng)用程序的內(nèi)存和 CPU 資源量非常不平衡,用于主要應(yīng)用程序的本地內(nèi)存和 CPU 資源量是用于次要應(yīng)用程序的三倍。次要應(yīng)用程序可以是數(shù)據(jù)庫引擎的第二個實例,它在同一數(shù)據(jù)庫引擎實例中,甚至在同一數(shù)據(jù)庫中提供次要的功能。通過向優(yōu)先使用的連接提供額外資源,它提供了一種線程優(yōu)先執(zhí)行的方式。

如何進行numa架構(gòu)與性能的解析

C. 將多個端口關(guān)聯(lián)到多個節(jié)點

可以將多個端口映射到同一 NUMA 節(jié)點。這樣,您就可以為不同的端口配置不同的權(quán)限。例如,您可以通過控制對相應(yīng) TCP 端點的權(quán)限來嚴格限制由某個端口提供的訪問。在此示例中,端口 1450 在 Intranet 上普遍可用。端口 1433 則設(shè)置為通過防火墻連接到 Internet,并對它的訪問進行嚴格的限制。兩個端口都可以充分、平等、安全地利用 NUMA。

如何進行numa架構(gòu)與性能的解析

  3、如何設(shè)置,遵循什么原則

  那么在虛擬化場景中,如何設(shè)置NUMA呢?原則是什么?

  如何進行numa架構(gòu)與性能的解析

  例如一臺配置了兩顆八核處理器以及128GB內(nèi)存的服務(wù)器,我們需要在其上分配CPU和內(nèi)存資源并劃分虛機。

  首先在NUMA架構(gòu)中,每個處理器能夠控制64GB的物理內(nèi)存,每個處理器的八個核心中的每個核心將對應(yīng)一個8GB的NUMA節(jié)點。這將會如何影響虛擬機性能?由于每個處理器核心訪問NUMA節(jié)點內(nèi)內(nèi)存的速度要比其他節(jié)點快,因此當虛擬機內(nèi)存大小少于或者等于NUMA節(jié)點的內(nèi)存大小時,虛擬機在理論上能夠獲得最好的性能。如果給虛擬機分配更多的內(nèi)存,則虛擬機必然要訪問其NUMA節(jié)點之外的部分內(nèi)存,這樣或多或少會影響其性能。如果應(yīng)用能夠感知NUMA,那就更好了。vSphere使用vNUMA可以創(chuàng)建能夠感知NUMA的虛擬機。該虛擬機將會被分割為虛擬NUMA節(jié)點,每個vNUMA節(jié)點將會被放置到一個不同的物理NUMA節(jié)點。盡管虛擬機仍舊在兩個NUMA節(jié)點之間擴展,但虛擬機內(nèi)的操作系統(tǒng)和應(yīng)用能夠感知NUMA,資源使用將會得到優(yōu)化。

  NUMA現(xiàn)已經(jīng)對在數(shù)據(jù)中心服務(wù)器上安裝及選擇內(nèi)存的方式帶來了很多改變。在給服務(wù)器增加物理內(nèi)存時,我們需要注意增加的內(nèi)存要在NUMA節(jié)點之間進行平衡及匹配以使主板上的每個處理器擁有相同的內(nèi)存。如果在我們所舉例的服務(wù)器上配置更多的內(nèi)存,那么必須在處理器之間平衡這些內(nèi)存模塊。如果增加64GB的內(nèi)存,那么每個處理器將分配到32GB的內(nèi)存(每個處理器可支配的內(nèi)存將增加到96GB,服務(wù)器總內(nèi)存數(shù)將達到192GB),每個NUMA節(jié)點的內(nèi)存大小將從8GB增加到12GB。由于每個Socket控制的內(nèi)存插槽是不同的,因此要確保內(nèi)存插槽是均勻的。例如192G內(nèi)存分為12個16G的內(nèi)存條,那么應(yīng)該4個插在一個Socket的內(nèi)存插槽中,另8個插在另兩個socket的內(nèi)存插槽中。在為虛機分配vCPU資源時,也盡可能按照Socket/Core的倍數(shù)分配,比如1X1, 1X2, 1X 4, 1X8, 2X1, 2X2, 2X4, 2X8等組合,但不要使用2X3, 2X5, 2X7這種組合。后面的組合會引起跨Socket的內(nèi)存調(diào)用,從而容易導致性能下降。

  結(jié)合實踐,不同的業(yè)務(wù)對內(nèi)存會有不同的要求,但最好不要跨NUMA單元去進行調(diào)用,盡可能的使每個CPU訪問它的直連內(nèi)存單元。遵循這些簡單的原則,就會使性能更好。

關(guān)于如何進行numa架構(gòu)與性能的解析問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI