Dell

我應該在帶有 ECC DIMM 的 Dell PowerEdge R710 Bios 中使用 bios“高級 ECC”嗎?

  • February 12, 2020

我有一個帶有雙 Intel Xeon E5503 CPU 的 Dell PowerEdge R710。它有 96GB(12x8GB) 的 ECC DIMM。在其 BIOS 中,記憶體配置為“高級 ECC”。

我的問題是,如果我的 DIMM 已經是 ECC,在 BIOS 中啟用此“高級 ECC”模式是否有意義,還是應該切換到“優化”?

戴爾這樣描述這些模式:

高級 ECC 模式 此模式使用兩個 MCH 並將它們“連接”在一起以模擬 128 位數據匯流排 DIMM。這主要用於為基於 x8 DRAM 技術的 DIMM 實現單設備數據校正 (SDDC)。在每種記憶體模式下,基於 x4 的 DIMM 都支持 SDDC。一個 MCH 完全未使用,安裝在此通道中的任何記憶體都會在 POST 期間生成警告消息。

記憶體優化模式在此模式下,MCH 相互獨立執行;例如,一個可以空閒,一個可以執行寫操作,另一個可以準備讀操作。記憶體可以安裝在一個、兩個或三個通道中。為了充分實現記憶體優化模式的性能優勢,每個 CPU 的所有三個通道都應該被填充。這意味著某些“非典型”記憶體配置(例如 3GB、6GB 或 12GB)將產生最佳性能。這是推薦的模式,除非需要特定的 RAS 功能。

Dell PowerEdge R710 系統硬體使用者手冊 (PDF)

它確實有所作為,只有當您需要 x4 或 x8 設備上的 RAS(可靠性、可用性和服務)功能並了解您的需求的權衡時才有意義。更多詳細資訊可在戴爾白皮書Dell™ PowerEdge™ 伺服器 2009 - 記憶體中進行解釋。

此外,PowerEdge R710 的技術指南中還提供了具有 R710 特定細節的配置和佈局 - (Google這個,因為我沒有連結的聲譽)。

需要注意的重要問題是晶片上的 ECC 與戴爾 BIOS 提供的用於單設備數據校正 (SDDC) 的“高級 ECC”之間的區別。您將對兩者都產生性能影響。ECC 將在寫入晶片期間從錯誤中恢復。然而,SDDC 更進一步,將組織這些位,以便整個晶片可以發生故障並且仍然可以恢復。查看範例和詳細資訊SDDC E7500 晶片組

問題是您的性能和/或可靠性是否是您對機器的具體使用中最關心的問題。如果晶片故障會導致這台機器上的關鍵數據或使用失去並且它在實施中是非冗餘的,那麼高級 ECC 可能是一個很好的選擇。但是,這樣做會影響性能,這對您來說可能更重要。

我已經在 Dell PowerEdge 伺服器上針對單個 Microsoft SQL Server 實施進行了現場實施。如果我能提供更多幫助,請發表評論讓我知道。

希望有幫助。

編輯:覆蓋差距/ECC 實施

是的,即使您同時實施兩者,也存在覆蓋差距。由於您專門使用高可用性伺服器集群,恕​​我直言,您應該使用高級 ECC。與集群設備的好處相比,您對性能的影響是最小的。根據 Crucial 的說法,一般來說,ECC 記憶體的性能只會下降 2% 。

差距將更具體到發生的錯誤類型以及每個錯誤如何處理。在您的特定情況下,它不應轉化為數據失去。由於這是一個企業 DBMS,因此在軟體級別管理錯誤、並發問題等,以防止數據失去。詳細的歷史記錄保存在正確配置的 DBMS 中,使用它的軟體通常可以設置為在發生嚴重錯誤時讓事務“回滾”。

ECC 實施

ECC 將嘗試糾正記憶體讀/寫中的任何位錯誤。但是,如果錯誤更嚴重,那麼即使 ECC 也無法恢復,可能會導致數據失去。ServerFault/什麼是 ECC ram以及為什麼它更好?

根據ECC_Memory 上的維基百科

ECC 記憶體有效地維護了一個沒有單位錯誤的記憶體系統……

數據中心

如果您參考上面的 E7500 晶片組文件(注意英特爾的 55xx/56xx 需要登錄/合作,但想法相似,這就是我最初沒有連結的原因),其中描述了 SDDC 以及它是如何實現的。基本上,它使用一種技術來組織寫入記憶體的字,以確保所有字都以這樣的方式寫入,即每個字將只包含一個位錯誤,即該字應該可以從單位錯誤中恢復(如上所述)。 現在這是按字計算的,因此通過糾錯每個字,它可以從 x4 設備上最多 4 位錯誤(每個字 1 個)和 x8 設備上最多 8 位錯誤(仍然每個字 1 個)中恢復。

其他錯誤、更多位錯誤、總記憶體故障、通道故障、匯流排故障等仍然會導致可怕的問題,但這就是您擁有集群和 Enterprise DBMS 的原因。

簡而言之,如果您啟用了所有功能並且有太多位錯誤需要糾錯算法來糾正,您仍然會遇到錯誤,即錯誤覆蓋差距。不過,這些可能非常罕見。

引用自:https://serverfault.com/questions/387736