Sql-Server

SQL Server 頁面文件位置 - 放在哪裡?

  • November 1, 2019

有很多關於 windows 頁面文件大小的建議。我正在尋找的是正確的位置。

我們在具有多個單獨虛擬磁碟的 Server 2012R2 VM 上執行 MS SQL 伺服器:

  • 視窗磁碟
  • 一個安裝了 SQL Server 應用程序的磁碟
  • 用於 SQL 數據文件 (mdf/ndf) 的磁碟
  • 用於事務日誌文件 (ldf) 的磁碟
  • 一張用於手動備份和其他臨時文件的磁碟。

目前,Windows 已經控制了頁面文件。它將其大小調整為 38GB(記憶體為 265),並將其與日誌文件一起放在磁碟上。就我的理解而言,這種放置是不合邏輯的:包含 SQL 事務日誌文件的磁碟是 SQL 伺服器上 I/O 最重的磁碟。它真的是頁面文件的最佳位置嗎?至於儲存空間,我可以輕鬆地將文件移動到另一個驅動器。

我知道,Windows 可能有理由將文件放在那裡 - 但如果是這樣,這可能是什麼?還是我的想法有問題?

在您擔心頁面文件大小之前……

老實說,您永遠不希望您的 SQL Server 開始分頁。當它的記憶體被分頁到磁碟時,SQL Server 傾向於變成梨形。

SQL Server 的最佳實踐是將Max Server Memory配置設置為一個足夠大的數字,以便 SQL Server 擁有足夠的記憶體,但又足夠小,以使您的作業系統和伺服器上執行的任何其他設備都有足夠的記憶體。關於如何在此處此處進行配置有一些很好的建議。

對於具有 256GB 記憶體且在伺服器上執行 SQL Server 的伺服器,我建議從配置為 235929 MB 的最大伺服器記憶體開始,這允許大約 25GB 的空間。這應該足以防止分頁。

EXEC sys.sp_configure 'max server memory (MB)', '235929'; 
RECONFIGURE;

網際網路上關於該頁面文件的說法…

網際網路上有很多建議說您的頁面文件應該是記憶體大小的 1.5 倍。在具有 256GB 記憶體的伺服器上,這將需要 386GB 的頁面文件。您可能希望此頁面文件位於與數據和日誌文件分開的驅動器上(否則,分頁到您的數據/日誌驅動器會加劇由分頁引起的性能問題)。您的 C:\ 驅動器可能不夠大,除非您正在建構具有 512GB C:\ 驅動器的伺服器。您還希望驅動器速度快(否則分頁到慢速磁碟會加劇由分頁引起的性能問題)。您可能需要一個專用磁碟來儲存該 1.5x 頁面文件。

該建議假定您希望您的伺服器進行分頁。您不希望您的伺服器分頁。SQL Server 在開始分頁時可能會崩潰,如果不這樣,您的性能將慢得像爬行一樣。您可以為您的頁面文件購買某種超快速 NVMe 驅動器,這可能會使性能可以接受。

網際網路是錯誤的。

我說的那個頁面文件…

我什至不在乎它有多大。**我永遠不會使用它。**它可以很小。它可以在 C:\ 驅動器上。C:\ 驅動器可能很慢。

  • 確保正確設置最大伺服器記憶體(見上文)
  • 如果您的伺服器需要更多記憶體,請在伺服器中安裝更多記憶體——不要分頁到磁碟。
  • 您應該將您的頁面文件從日誌驅動器移到 C: 上。如果您使用它,您希望它脫離您的數據/日誌驅動器。如果你必須讓它更小以適應 C:\,那就去吧。
  • 不要為頁面文件花錢購買快速磁碟——把錢花在另一塊 RAM 上。

如果系統崩潰並產生記憶體崩潰轉儲,我的頁面文件可能不足以處理該轉儲。但是在具有大量記憶體的系統上,將 1TB 記憶體轉儲到磁碟以進行故障轉儲將需要很長時間,即使在快速磁碟上也是如此,而且我通常更喜歡讓 SQL Server 快速恢復聯機以擷取故障轉儲。作為故障排除的一部分,我可以重新配置具有反復出現的問題的伺服器。

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