記一次sqlserver伺服器遷移後內存調整導致的卡頓問題

2019-09-24     波波說運維

概述

最近有台資料庫做了遷移,然後運維人員過了一段時間發現這台伺服器非常卡,連遠程登錄都要很久,下面記錄下其中的解決過程。


1、查看資源情況

可以發現內存爆滿了,而排名第一的正是sqlserver的進程


2、查看sqlserver內存分配

SQL Server對伺服器內存的使用策略是用多少內存就占用多少內存,只用在伺服器內存不足時,才會釋放一點占用的內存,所以SQL Server 伺服器內存往往會占用很高。

可以看到遷移之前分配的內存是10G,但遷移後的伺服器只有8G內存。


3、調整sqlserver內存

這裡可以把最大伺服器內存改成1G,確定後內存就會被強制釋放,然後把最大伺服器內存改成合適的值。


4、查看內存分配

正常只啟動sqlserver伺服器內存消耗2.34G,打開F5客戶端到3.1G,也就是消耗0.7G內存,最後打開下載數據的客戶端,應該是下載數據都緩存到sqlserver內存裡面了,所以內存一直在增加..目前穩定在5.17G內存,也就是這個下載消耗了2.2G內存。


5、查看目前內存狀態:

DBCC MemoryStatus

這些內存一般都是Sql Server運行時候用作緩存的:

1) 數據緩存:執行個查詢語句,Sql Server會將相關的數據頁(Sql Server操作的數據都是以頁為單位的)加載到內存中來, 下一次如果再次請求此頁的數據的時候,就無需讀取磁碟了,大大提高了速度。

2)執行命令緩存:在執行存儲過程,自定函數時,Sql Server需要先二進位編譯再運行,編譯後的結果也會緩存起來, 再次調用時就無需再次編譯。


覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~

文章來源: https://twgreatdaily.com/zh-tw/nwVTZW0BJleJMoPMB60p.html