各位版眾好
敝人在設定VM的時候一直對於CPU的參數和應給量感到疑惑
以下圖中VMware vSphere的VM來看
圖片中的CPU意思是說這台VM使用兩個socket實體CPU的各一個核心嗎?
(所以CPU是2?)
那如果主機裝了兩顆6核心(12 thrreads)的處理器
而且某台VM要求配給假設16cpu去讓它的系統徹底跑滿運用
所以這台VM要給的CPU量應該是調整core per socket為8
然後因為socket只有兩槽的處理器 因此8X2=16要這樣設定才能均衡運用到兩顆實體CPU的資源嗎???
(而不是16core per socketX1?)
就目前主流NUMA架構的機器而言,OS(或說Hypervisor)最好知道實體CPU和RAM間的關係(i.e.哪些RAM是位於哪顆實體CPU下),除了避免Cache同步的問題外,process分配到的RAM位於另一顆實體CPU下時CPU-CPU間的HyperTransport/QPI對RAM來說還不夠快,也要避免相關process被分配到另一顆實體CPU下(因為作Inter Process Communication時一樣會經過HyperTransport/QPI,會比在同一顆實體CPU下慢),所以應該是config成2 physical CPU,8 Cores per Socket比較恰當,但這只是純就理論而言,如果bottleneck出在RAM不夠或是IO跑不動的話,不論config成1CPU/16Cores或是2CPU/8Cores未必會感覺得出來有多少差異就是了....