2008-10-10 96 views
0

我們剛剛將生產數據庫服務器從32位升級到64位。它在Windows Server 2003上運行SQL Server 2005 Standard。在升級後的晚上,服務器將近一個小時不可用 - 客戶端請求超時。這個問題似乎解決了問題。關於這個問題的唯一線索是SQL服務器日誌中的內容:升級到64位後奇怪的SQL Server內存錯誤

LazyWriter:warning,找不到空閒緩衝區。

內存管理器 VM預留= 8470288 KB VM所犯= 2167672 KB AWE分配= 0 KB 保留存儲器= 1024 KB 保留使用中的存儲= 0 KB

消息 存儲器節點ID = 0 VM預留= 8464528 KB VM所犯= 2162000 KB AWE分配= 0 KB SinglePage分配器= 103960 KB 多頁分配器= 31832 KB

MEMORYCLERK_SQLGENERAL(共) VM預留= 0 KB VM所犯= 0 KB AWE分配= 0 KB SM預留= 0 KB SM所犯= 0 KB SinglePage分配器= 4352 KB

然後有許多像MEMORYCLERK這樣的更多消息。

有誰知道發生了什麼事?好像它的內存不足,而且服務器只有2GB的物理內存,這與今天的標準不太一樣,但是它肯定不應該完全停止工作?我應該將允許使用的最大內存設置爲1.6GB左右嗎?有什麼我可以做的(而不是安裝更多的內存,顯然)?

回答

0

還有的是MSSQL的一些零星報道分配足夠的內存來引起頁面錯誤磁盤1 - 這,當然,結果大大降低性能。

雖然我沒有看到MS的任何官方消息,但有報道稱,將最大內存設置爲比物理RAM少512M至1G的應用程序應該有所幫助。

Enterprise Edition允許您保持MSSQL頁面不被分頁,這也應該解決問題。而且,顯然,更多的RAM將會有所幫助 - 但可能無法緩解它。

1關於MSSQL是否試圖分配太多的內存,操作系統正在調出,或者MSSQL只是分配給錯誤的池,存在一些爭議。無論如何,max mem應該幫助案例1和2,並且SP2應該解決3。

編輯:一位同事指出我有一個相關的KB article列出幾個修補程序。它引用了不同的錯誤信息(您是否在運行SP2?),但症狀和行爲似乎適合您的情況。

相關問題