NUMA 簡單原理介紹

NUMA 的概念簡單化的說明,就是不讓 VM  socket 去讀取不同的 CPU L2 cache 或是 RAM,一般來說雙路的伺服器比較少碰到,而4路的伺服器就非常明顯。假設我有一台 VM 開了 DB 給它 16 Core 結果 KVM 很好心的平均分佈 CPU 1~4 各 4 Core 的話 我的 DB 會跟烏龜爬的一樣 oracle db 自找的。

一般來說最怕是 CPU 1 Core 的記憶體使用到 CPU 2 RAM,這樣的話效率就會非常的差。

假設 VM  4 vCPU 而已,但是 Host  4 socket 的話你都有機會被系統 4 vCPU 被拆到不同的 Host CPU socket這個時候,等於 CPU L1 L2 Cache 被閹割,VM的馬上效能從 Xeon 變成 Cache  Celeron CPU。

如果遇到最差的情況的話。 CPU 1 到它的 Ram slot 是很快的,但是如果 CPU 1 運算的數據 CPU 2  Ram address 上面,這個時候效能再給你比 Celeron 再更慘,所以 NUMA  4 Way 非常重要,而 2 way 當然也有影響但是 Chance 機率小很多。

NUMA架構的CPU -- 你真的用好了麼?

阅读剩余
THE END