Backup

在 Windows 2012、Windows 2012R2 上複製大文件期間禁用文件記憶體

  • April 30, 2019

我在少數主機上備份 Hyper-V 時遇到了很大的問題。在軟體完成備份期間,一些機器變得不可用,主機開始當機等。我們跟踪的不是軟體本身,而是文件複製。只需將文件從驅動器 D 複製到大小為 30GB 的 C 將在文件傳輸期間殺死主機。文件複製前的 ram 使用量是 64GB 中的 48GB。當您開始傳輸 30GB 文件時,ram 的使用會發生變化,並且在 1 分鐘內,64 台伺服器中的 64 台開始爬網,甚至 RDP,物理訪問停止工作,直到文件複製完成。因此,在備份期間,伺服器可能需要數小時才能可用。

這是 DELL Server R515,RAID 控制器處於回寫模式。我在其他 Windows 2012 伺服器上註意到了這一點。我嘗試使用一些舊的解決方案來禁用 2003 年的記憶體,但沒有一個有效。我已經在 IBM 和 Dell 伺服器上對其進行了測試,並且行為非常相似。記憶體使用率上升。首先它以 700MB/s 的速度複製開始,然後在使用 ram 後它會變得緩慢。所以問題是如何禁用文件記憶體或將其限制為正常值。

請不要提出使用 robocopy 或其他“複製”工具的建議,因為雖然它可以解決使用外部軟體複製的問題,但我的問題實際上是關於我無法影響的 3rd 方軟體進行的備份。我希望“Explorer”能夠正常執行:-)

在命令行以管理員身份執行:

fsutil behavior set memoryusage 0 

您可以為此條目設置三個值:0 表示未設置,1 表示預設值,2 表示增加。

殺死您的伺服器的不是磁碟記憶體或記憶體使用本身,而是複制操作本身。事實上,如果出現記憶體壓力,可以立即回收非臟頁。

基本上,在復製過程中,您不斷送出 I/O 請求的速度超過了磁碟的處理速度,從而使系統陷入癱瘓。雖然禁用回寫記憶體(在作業系統和 RAID 卡級別)可以提供更好的性能,但真正的解決方案是在低負載時間(例如:夜間)安排此類操作,或者,您可以限制複製速度(不消耗所有可用的 IOPS)。

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