-1

目前位於Windows Server 2008 R2 Standard,內存爲32GB。使用msxml3.dll進行內存泄露

一旦服務器達到內存使用率約爲50%(18GB,其中13GB用於SQL Server(2008)),XMLHTTP請求會發生一些奇怪的事情。我試過使用"Microsoft.XMLHTTPMSXML2.ServerXMLHTTP,但我得到了相同的結果。

我得到所有Msxml3.dll文件相關的2個不同的錯誤:

Error #: -2146697211 
The system cannot locate the resource specified. 

Error #: -2147024888 
Not enough storage is available to process this command. 

我重新啓動服務器後,似乎一切都工作正常,現在至少,我們會看到內存使用量何時開始增加。

我已經搜索了一段時間的解決方案,並發現除了重新啓動服務器似乎沒有任何工作,還沒有嘗試只是重新啓動IIS,但我想知道爲什麼這一切突然發生。

+0

爲什麼要使用在T此COM對象 - SQL?強烈推薦CLR(或者根本不要嘗試從SQL Server內部打網頁)。 – 2012-03-08 17:40:10

+0

嗨亞倫,腳本是在經典的ASP,它不是從SQL執行,ASP腳本崩潰時,服務器命中高內存,主要是附屬於SQL。 – 2012-03-08 17:45:17

+0

所以你認爲是因爲SQL Server佔用了13GB的磁盤空間,它必須關聯? – 2012-03-08 17:50:43

回答

2

如果您的意思是隻爲SQL Server預留13GB內存,則需要告訴某人。現在你已經告訴SQL Server如果需要接管服務器。

EXEC sp_configure 'show adv', 1; 
RECONFIGURE WITH OVERRIDE; 
GO 
EXEC sp_configure 'max server memory', 13000; 
RECONFIGURE WITH OVERRIDE; 
GO 

現在重新啓動SQL Server。這並不能保證SQL Server不會超過13 GB,因爲此設置僅控制其內存使用的某些方面,但會阻止SQL Server接管該方框。

這是我假定你已經設置的設置,你說的話:

18GB,它的13GB是SQL Server(2008)

+0

服務器上有32GB,它從來沒有超過18GB,我認爲我不應該太擔心SQL上的最大值,因爲仍然有很多空間達到32GB,對吧? – 2012-03-08 18:08:50

+0

顯然不是,如果你說SQL Server導致你的MSXML組件與內存混亂,並且你不打算限制SQL Server的內存 - 一些東西在這裏沒有加起來./ – 2012-03-08 18:24:51

+0

它做了什麼限制SQL運行超過13GB時的性能? – 2012-03-08 20:11:32