NUMA----非統一內存訪問

看核心編程的時候看到一個短語叫“非統一內存訪問”,不是很理解,於是百度一下,下面解釋來自

http://hi.baidu.com/dpf19861128/blog/item/831a90a4ef7e29fe9052eedc.html

之前很多人都認爲MS的產品只能使用在中小企業,進不了企業級市場,MS的東西都是在PC server上來實現,無法和IBM的主機系統來PK。隨着硬件的不斷髮展,PC Server的優勢也漸漸體現出來了,但是很多時候用戶還是希望能夠有更強大的PC Server來運行他們的系統。IBM的主機可以有數千顆CPU肯定比只有幾十顆CPU的PC Server快很多。但是現在的PC Server也可能做到幾百顆的CPU,這樣就要看看微軟的產品是否支持了。

硬件已經趨向使用多條系統總線,每條系統總線爲一小組處理器提供服務。每組處理器都有自己的內存,並可能有自己的 I/O 通道。但是,每個 CPU 都可以通過一致的方式訪問與其他組關聯的內存。每個組稱爲一個“NUMA 節點”。NUMA 節點中的 CPU 數量取決於硬件供應商。訪問本地內存比訪問與其他 NUMA 節點關聯的內存快。這就是“非一致性內存訪問體系結構”名稱的由來。

在 NUMA 硬件上,有些內存區域與其他區域位於不同的物理總線上。由於 NUMA 同時使用本地內存和外部內存,因此,訪問某些內存區域的時間會比訪問其他內存區域的要長。“本地內存”和“外部內存”通常用於引用當前正在運行的線程。本地內存是指與當前正在運行線程的 CPU 位於同一節點上的內存。任何不屬於當前正在運行的線程所在的節點的內存均爲外部內存。外部內存也稱爲“遠程內存”。訪問外部內存的開銷與訪問本地內存的開銷比率稱爲 NUMA 比率。如果 NUMA 比率爲 1,則它是對稱多處理 (SMP)。比率越高,訪問其他節點內存的開銷就越大。不支持 NUMA 的 Windows 應用程序(包括 SQL Server 2000 SP3 及更低版本)有時在 NUMA 硬件上的執行效果非常差。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章