所有 Forefront TMG 2010 伺服器都隨之安裝了 SQL Server 2008 Express,作為本機防火牆與網頁代理紀錄用途,作為管理者的您可能會發現 SQL server 程序(sqlserver.exe) 正消耗了大量的主機記憶體。
這種情形其實是因為 SQL server 有自己的記憶體管理機制,依據它的設計,SQL Server 會佔據大量的記憶體並且將其保留住,因此造成類似 memory leak 的狀況,不過如果以較長時間的監視 SQL server 記憶體消耗, 其實它仍然會進行記憶體釋放的動作。
大多數的情況,維持 SQL Server 自己的記憶體使用行為並不會造成任何問題,不過如果您的 TMG 確實面臨記憶體不足的壓力,而且您確定系統上沒有其他的程序佔據大量的記憶體,那麼或許您可以嘗試本文中的方法來限制 SQL 記憶體用量,在開始之前,請參考這份微軟的技術文件中關於記憶體的建議值。
接下來,進入命令提示字元模式,輸入以下的命令:
osql –E –S .\msfw
這個命令將會連線 SQL 執行緒,再輸入下列命令:
USE master
GO
EXEC sp_configure ‘show advanced options’, 1
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure ‘max server memory (MB)’, 1024 –configure 1GB limit, adjust as needed
GO
EXEC sp_configure ‘show advanced options’, 0
RECONFIGURE WITH OVERRIDE
GO
以上的 script 係設定 SQL server 記憶體限制為 1GB(1024MB),請根據您的需求自行調整,完成後重新啟動 SQL Server服務即可生效。
如果您想知道目前的記憶體限制值,可以下列命令:
EXEC sp_configure 'max server memory (MB)'































