[翻译]SQL Server 工作集消息
Q:我發(fā)現(xiàn)有指向工作集(SQL Server保留內(nèi)存區(qū)域)被分頁出來相關(guān)的消息:
重要部分的 SQL 服務(wù)器進(jìn)程內(nèi)存已被分頁。這可能導(dǎo)致性能下降。持續(xù)時間: 0 秒。 工作集 (KB): 2484,已提交 (KB): 48036,內(nèi)存使用比率: 50%。
有什么原因可能導(dǎo)致這個問題?
A:
工作集調(diào)整分為以下幾種:
1. 信號調(diào)整
低物理內(nèi)存事件提醒事件是由操作系統(tǒng)設(shè)置的(參考:QueryMemoryResourceNotification<http://msdn2.microsoft.com/en-us/library/aa366799.aspx>),當(dāng)物理內(nèi)存低下時會出現(xiàn)。SQL Server資源監(jiān)視器,Lazy writer和其他進(jìn)程占用BPool內(nèi)存部分。它會將物理內(nèi)存返回給系統(tǒng),然后降低SQL Server的工作集。當(dāng)該事件產(chǎn)生時,sys.dm_os_ring_buffer和RING_BUFFER_RESOURCE_MONITOR的記錄會被寫入日志。這是SQL Server要保留預(yù)留內(nèi)存的正常行為。該行為不會被寫入錯誤日志信息。
2. 自調(diào)整
操作系統(tǒng)在新申請一個頁的時候遇到了頁錯誤,判斷為物理內(nèi)存不足。例如,如果SQL Server為一個棧,連接服務(wù)器或其他應(yīng)用程序申請頁,發(fā)現(xiàn)內(nèi)存不足,會直接調(diào)整SQL Server的工作集。
3. 硬調(diào)整
當(dāng)系統(tǒng)內(nèi)存嚴(yán)重不足的時候,會發(fā)生硬調(diào)整。該行為會直接把SQL Server所有的工作集和其他進(jìn)程分頁出來。
除了信號調(diào)整之外,自調(diào)整和硬調(diào)整都會寫錯誤日志,導(dǎo)致性能問題。
基本查錯步驟:
1. 確認(rèn)沒有其他進(jìn)程快速吃完了內(nèi)存。查看方法是監(jiān)測內(nèi)存:_Total工作集這個性能計數(shù)器。如果您啟用了一個快速消耗內(nèi)存的應(yīng)用程序,工作集會被快速地調(diào)整,但_Total會保持不變。如果_Total快速下降,那么這就說明不是某個應(yīng)用程序吃光了內(nèi)存,而是發(fā)生了MiEmptyWorkingSet或MmAllocateContigiousMemory發(fā)生了,然后操作系統(tǒng)決定進(jìn)行硬調(diào)整。
2. 確認(rèn)SQL Server進(jìn)程ID在發(fā)生問題的時間段一直存在。如果SQL Server服務(wù)有被重啟過計數(shù)器可能會產(chǎn)生容易誤導(dǎo)的數(shù)據(jù)。
3. 確認(rèn)您的系統(tǒng)的驅(qū)動是最新的。驅(qū)動也可能會造成調(diào)整。
4. 確認(rèn)操作系統(tǒng)終端服務(wù)的bug不是導(dǎo)致該問題的原因:http://support.microsoft.com/default.aspx?scid=kb;EN-US;905865
5. 抓取完整的性能計數(shù)器,和SQL Server的sys.dm_os_ring_buffers。
6. 應(yīng)用操作系統(tǒng)補丁:http://support.microsoft.com/default.aspx?scid=kb;EN-US;920739
7. 應(yīng)用操作系統(tǒng)補丁:http://support.microsoft.com/default.aspx?scid=kb;EN-US;931308
8. 應(yīng)用SQL Server 2005 SP3。
轉(zhuǎn)載于:https://www.cnblogs.com/galaxyyao/archive/2009/05/18/1459611.html
總結(jié)
以上是生活随笔為你收集整理的[翻译]SQL Server 工作集消息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python输入年份月份输出天数_6.2
- 下一篇: linux cmake编译源码,linu