什麼是記憶體操作模式?
我得到了一個 x64 windows 2003 伺服器,我在上面安裝了 M$ Virtual server 2005 R2。然後我創建了一個執行 Server 2008 R2 的映像。它執行得很慢,所以我對事件日誌進行了一些探勘,最終找到了這篇文章:http: //support.microsoft.com/kb/925477。
我已經進入主機伺服器的 BIOS 並將記憶體操作模式更改為優化器模式,並將節點交錯更改為啟用。令人高興的是,客戶作業系統現在執行得更快了(在我看來,沒有真正的具體測試)。
這就是設置,我的問題很簡單。我剛剛做了什麼?我對記憶體管理文件的閱讀越多,我理解的越少。有人可以解釋一下記憶體操作模式是什麼以及不同設置的真正含義。
看起來你那裡有一台戴爾伺服器!一些文件:
http://support.dell.com/support/edocs/systems/pem/en/hom/html/syssetup.htm
優化器模式:“當設置為優化器模式時,兩個記憶體控制器以並行 64 位模式執行,以提高記憶體性能。
記憶體交錯:“如果設置為禁用(預設),則使用 NUMA。如果啟用,則實現記憶體交錯。
你對這些設置做了兩件事:
- 配置記憶體控制器以提高並行度。
- 將記憶體配置為不使用 NUMA(特定於處理器的記憶體庫),而是像使用本地記憶體一樣使用所有記憶體。
這對你來說可能是阿拉姆語,所以有一些關於這意味著什麼的背景。新伺服器配置了每個處理器的記憶體庫,這些記憶體庫允許稱為 NUMA(非統一記憶體架構(連結))。這允許各個處理器擁有不同數量的本地記憶體,並使作業系統(如果它支持 NUMA)能夠建構正在執行的程序以利用每個處理器的本地記憶體。
快速範例,以雙四核伺服器為例。每個四核處理器都有 8GB 的 RAM 與之關聯,系統中總共有 16GB。在 NUMA 系統中,作業系統知道在一個四核處理器上執行的程序具有本地記憶體(讀取速度更快),並且在一個處理器上的各個核心之間移動程序不會影響記憶體訪問速度。它還知道,如果一個程序必須訪問另一個處理器的本地記憶體庫上的記憶體,它將花費一定的時間。
本質上,您對 BIOS 設置所做的是關閉 NUMA。記憶體交錯意味著不保留記憶體處理器的親和性,因此所有記憶體訪問都會很昂貴。這可以通過打開優化器模式得到補償,這意味著可以*並行處理記憶體訪問,*這樣交錯記憶體的服務速度將比串列訪問允許的快得多。
我希望這有幫助。