2012-07-16 89 views
2

我們有一臺2008 SQL Server計算機,出於某種原因,我們還沒弄清楚,每兩週這臺服務器在同一時間和同一天停止響應,無論是星期日還是星期六,我們檢查了日誌,並且我們發現的唯一消息是這樣的SQL Server停止響應,服務器凍結

sql server進程內存的一個重要部分已被分頁。

上的操作系統日誌,我們發現算法中的消息

應用程序彈出: - 虛擬內存最小值太低:您的系統是虛擬內存不足。 Windows正在增加虛擬內存頁面文件的大小。在此過程中,某些應用程序的內存請求可能會被拒絕。有關更多信息,請參閱幫助。

所以它看起來像操作系統的物理內存,我們不已瞭解爲什麼會這樣,每兩個星期,就好像內存永遠不會被釋放,兩週才能得到充分的時期。有沒有辦法可以更好地診斷此問題?我們也想知道它是否與我們如何使用NHibernate相關?還是有其他原因?

+0

檢查你的'日誌文件'大小。絕對是'GB' :)。如果是這樣你使用以下語法來'shrink'它定期'USE數據庫名上 GO DBCC SHRINKFILE(,1) BACKUP LOG <數據庫> WITH TRUNCATE_ONLY DBCC SHRINKFILE(,1) GO'點擊此處查看** [參考資料](http://blog.sqlauthority.com/2006/12/30/sql-server-shrinking-truncate-log-file-log-full/)** – 2012-07-16 15:34:15

+0

@ryudice - 這不是必需的SQL Server消耗所有內存。作爲一個快速檢查,我會打開taskmanager並對使用的內存值進行排序。如果它確實是SQL Server,則可以開始深入研究。 – 2012-07-16 15:34:20

+0

@RGI你不能再這樣做了,從SQL Server 2008開始.155級,15級,狀態1- 'TRUNCATE_ONLY'不是公認的備份選項。' – 2012-07-16 15:59:12

回答

0

1)確定消耗內存的進程。使用Process object,並確定消耗內存(大Private BytesVirtual Bytes

2)如果過程真可謂是SQL Server,請SQL Server內存診斷步驟的過程。見Monitoring Memory UsageUsing DBCC MEMORYSTATUS to Monitor SQL Server Memory Usage

根據確定的存儲消費過程和posibly所識別SQL Server內存業務員,可以推薦appropiate措施和補救措施,但直到你做盡職調查,查明原因可能被未給出建議。

1

隨着時間的推移SQL Server消耗越來越多的內存,這是正常的。服務器啓動了幾個月後,我們遇到了這個問題。 SQL的內存消耗高達幾GB,Windows最終將其削減...

爲您的SQL Server設置「最大服務器內存」應該有所幫助。在我們的8 GB服務器上,我們將其設置爲5.5 GB。

PS。設置「低內存」電子郵件警報是一種很好的做法。它會讓知道之前的事情即將搞亂。這個博客post解釋了你如何做到這一點。