Sql-Server

降低備份的 I/O 優先級

  • August 26, 2011

我有一項工作,每晚執行所有附加數據庫的備份,但是如果在此期間有人連接,它可能會使伺服器陷入困境。我有大量的 CPU 成本可供使用(我的使用率僅略高於 5%,總共 8 個核心,最高的可能是 30%,其餘的處於空閒狀態),我的問題是我的 I/O 問題。查看資源監視器,我注意到資源監視器中讀取 mdf 和 .bak 文件的 I/O 優先級的優先級為Normal.

有沒有辦法讓我的備份Background優先執行?

您可以將數據庫備份到 UNC 路徑(手動或通過創建備份設備),因此您可以嘗試這樣做,但您將用磁碟 I/O 換取網路 I/O。

這實際上並沒有回答問題(如何調整備份操作的 I/O 優先級),但可能有助於顯著加快備份速度並減少它們對其他活動的影響:

如果您可以將備份寫入未保存數據庫數據和日誌文件的驅動器。使用基於旋轉磁碟的驅動器,這大大提高了性能,因為備份操作不會經常導致磁頭在保存實時數據(讀取頁面)的區域與正在寫入備份的區域(儲存這些頁面)之間翻轉。

這可能意味著向機器添加一個額外的物理驅動器(或多個驅動器,以便您可以使用 RAID 進行冗餘)以進行備份,特別是如果您只有一個驅動器或陣列可以容納所有內容。如果您的數據和日誌文件位於不同的磁碟/陣列上,但沒有第三個驅動器/陣列可將備份寫入並且無法添加,則將備份與日誌一起寫入驅動器通常比寫入它們更快到帶有數據文件的驅動器(因為日誌文件中的活動頁面要少得多,除非在特殊情況下)。

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