共用方式為


SQL Server 中未對齊 I/O 扇區大小錯誤所造成的效能降低

適用于:SQL Server

本文介紹如何在磁碟驅動器之間實體扇區大小不同時,解決SQL Server 中未對齊 I/O 作業而導致效能降低的問題。

概觀

當磁碟驅動器的實體扇區大小在伺服器或記憶體系統之間有所差異時,SQL Server 可能會遇到未對齊的 I/O 作業。 此狀況可能會降低效能,而且在扇區大小不符明顯的環境中特別常見,例如:

  • 具有連結記憶體的虛擬機
  • Always On 可用性群組
  • 記錄傳送
  • 硬體移轉

例如,當主伺服器使用 4 KB 扇區大小,而輔助伺服器使用 512 個字節時,就會發生常見問題。 此問題會在記錄同步處理或還原程序期間造成未對齊的 I/O 作業。 這種不一致可能會導致效能降低,例如還原速度緩慢或同步處理延遲。

追蹤旗標 1800 可確保不論基礎磁碟的實體扇區大小為何,SQL Server 都會針對事務歷史記錄 I/O 作業使用一致的 4 KB 扇區大小。 此追蹤旗標的設計目的是在混合環境中維護效能,其中伺服器可能已升級或移轉至具有不同記憶體規格的硬體。

對於具有大量寫入工作負載的資料庫,對齊 I/O 作業可以大幅改善效能,而在讀取密集型環境中,優點可能微不足道。

徵狀

如果您遇到下列任何徵兆,SQL Server 可能會因為 I/O 作業錯誤而導致效能降低:

  • 同步處理或還原時間變慢:未對齊的 I/O 作業可能會導致同步處理或還原時間變慢,特別是在分散式 SQL Server 環境中,例如 AlwaysOn 可用性群組或記錄傳送。

  • SQL Server 錯誤記錄檔中的錯誤訊息:與 I/O 作業相關的錯誤訊息可能會指出錯誤問題,例如:

    There have been # misaligned log IOs which required falling back to synchronous IO.

  • 寫入密集型作業期間的效能瓶頸:寫入密集型作業,例如記錄備份或資料庫還原,可能會因為 I/O 作業錯誤而遇到高磁碟延遲和增加的 I/O 等候時間,導致效能瓶頸和回應時間變慢。

確認扇區大小

為了避免 I/O 作業錯位,請務必確保磁碟驅動器的實體扇區大小在所有伺服器和儲存系統之間保持一致。

您可以在 提升權限的命令提示字元中執行下列命令,以確認磁區大小

fsutil fsinfo sectorinfo <volume path name>

下列螢幕快照顯示磁碟驅動器的 fsutil fsinfo sectorinfo 命令 E: 輸出,其扇區大小為8 KB,但實體扇區大小為4 KB,導致I/O作業錯誤:

8 KB 扇區大小的命令提示字元輸出螢幕快照。

解決方案

如果您因為 I/O 作業錯誤而遇到效能降低,且無法修改扇區大小,您可以使用追蹤旗標 1800 作為全域啟動參數,強制 SQL Server 針對事務歷史記錄 I/O 作業使用一致的 4 KB 扇區大小。

若要啟用追蹤旗標 1800 作為啟動參數,請遵循下列步驟:

  1. 在安裝 SQL Server 且實體磁區大小不相符的系統上,開啟 SQL Server Configuration Manager

  2. 展開 [SQL Server 組態管理員 [本機],然後選取 [SQL Server 服務]。

  3. 以滑鼠右鍵按下您要設定的 SQL Server 實例,然後選取 [ 屬性]:

    SQL Server 服務以滑鼠右鍵按單擊功能表的螢幕快照,其中已醒目提示 [屬性]。

  4. [SQL Server 屬性] 中,選取 [啟動參數] 索引標籤,在 -T1800] 字段中輸入 ,然後選取 [新增] 將參數新增至清單。

    在 SQL Server 屬性中將追蹤旗標新增為啟動參數的螢幕快照。

  5. 確認追蹤旗標已新增至啟動參數清單。 選取 [ 確定 ] 以儲存變更:

    [SQL Server 屬性] 視窗的螢幕快照,其中已醒目提示啟動參數。

  6. 重新啟動 SQL Server 服務,以在實例啟動時啟用追蹤旗標。

備註

追蹤旗標 1800 也可以在磁區大小為 4 KB 的系統上啟用,而不會對效能造成任何負面影響。

參考資料

KB3009974 - 修正:磁碟有不同的扇區大小時,同步處理速度變慢