Docker

Windows Server 2019 Docker 主機在重負載下掛起

  • October 1, 2020

我目前面臨的問題是 Windows Server 2019 Standard Server 在繁重的系統負載下掛起。有問題的伺服器是用於編譯和測試 .NET 應用程序的 windows docker 容器的主機。

伺服器本身是一個 2 插槽系統,具有兩個 AMD EPYC 7451 處理器和 128 GB 記憶體。使用的 Windows 版本是 Windows Server 2019 版本 1809(內部版本 17763.1158)。

當系統處於重負載下時,問題就會出現,這意味著兩個 CPU 上大約 90% 的負載和 90GB 的記憶體使用量,同時創建和銷毀 docker 容器。當問題發生時,整個系統突然停止,但在連接到伺服器的物理 VGA 埠時,我注意到桌面仍在工作。我此時打開了程序資源管理器。程序列表和所有圖表都停止了,但 UI 仍在工作。我能夠移動視窗並在程序監視器的系統資訊中切換選項卡仍在工作。然而,導致新視窗立即打開的所有功能也會導致程序監視器 ui 凍結。一旦系統凍結,CTRL+ALT+DEL 將不再工作,我還啟用了 CTRL+ALT+SCRLK 來觸發 BSoD,但沒有成功。滑鼠游標如何仍在工作並且在鍵盤上切換 num lock 也可以。一旦系統被凍結並且之前沒有錯誤,事件日誌就不會顯示任何條目。事件日誌中的最後一個條目通常是來自 Hyper-V VMSwitch 的消息,用於創建或刪除 Hyper-V 網路。我的猜測是這個問題可能與系統句柄有關,因為啟動應用程序和創建視窗似乎不再起作用,但是在系統凍結時,系統上只有大約 250k 句柄處於活動狀態。事件日誌中的最後一個條目通常是來自 Hyper-V VMSwitch 的消息,用於創建或刪除 Hyper-V 網路。我的猜測是這個問題可能與系統句柄有關,因為啟動應用程序和創建視窗似乎不再起作用,但是在系統凍結時,系統上只有大約 250k 句柄處於活動狀態。事件日誌中的最後一個條目通常是來自 Hyper-V VMSwitch 的消息,用於創建或刪除 Hyper-V 網路。我的猜測是這個問題可能與系統句柄有關,因為啟動應用程序和創建視窗似乎不再起作用,但是在系統凍結時,系統上只有大約 250k 句柄處於活動狀態。

為了解決這個問題,我基本上已經更新了硬體的所有驅動程序,我更新了所有允許它的硬體組件的韌體,並將 BIOS 更新到最新版本,所有這些都沒有改變情況。我還對 CPU 進行了壓力測試,對 RAM 進行了 memtest。兩者都沒有透露任何問題。

在這一點上,我不知道還能做什麼,甚至不知道要尋找什麼。這裡有類似問題的任何人或任何建議我可以嘗試什麼來解決問題?

我們能夠解決這個問題。當切換到 Hyper-V 虛擬化時,我們注意到只使用了一半的 CPU。原因是這個系統上只使用了一半的記憶體插槽。用更多記憶體填滿插槽後,所有問題都立即消失了。Hyper-V 和程序虛擬化都按預期工作。

似乎 AMD 及其處理器中的大量 NUMA 節點存在一些問題。

我在帶有 Hyper-V 和虛擬機的 Windows Server 2019 上的 Epyc 7401P 遇到了類似的問題。我試圖解決它幾個月但沒有任何成功,我不得不回到至強。看起來 Epyc 與 Hyper-V 虛擬化兼容,但它肯定不能很好地工作。

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