問題:
項目上反應生產(chǎn)線箱碼不能上傳到我們系統(tǒng),我們的WMS軟件退出后重新登錄也一直登錄失敗,并且服務器上數(shù)據(jù)庫占用內存過高,SSMS數(shù)據(jù)庫連接不上。
好家伙SQL Server占用了34個G內存。
接口日志中連接數(shù)據(jù)庫報錯:System.Data.SqlClient.SqlException: 當前命令發(fā)生了嚴重錯誤。應放棄任何可能產(chǎn)生的結果。
臨時處理
趁著問題還在,然后查問題,查了半天沒找到問題原因,最后重啟服務器,讓現(xiàn)場先用。
后面發(fā)現(xiàn)只需要在任務管理器中關閉SQL Server Windows NT-64Bit,然后在服務中重啟SQL Server服務,不用重啟服務器。
網(wǎng)上查資料
然后開始查資料,發(fā)現(xiàn)SQL server存在這個問題,我們給他分配多少內存,他就會不停的占用,中間不會釋放,直到分配內存快要占滿的時候才會釋放一點點內存(官方文檔:除非檢測到內存壓力,否則將不會釋放內存)。大部分給的解決方案就是把內存分配到合理范圍就行。
實際情況
我按照網(wǎng)上資料把數(shù)據(jù)庫內存調整到7個G(大致),觀察了一會兒,發(fā)現(xiàn)確實快達到7個G的時候,會清理一些。
(2023年1月6日補充,可能是給的內存太小不夠用)
但是,存在問題,我分配7個G,正常不會超過7個G內存,按理來說,快到7個G它會自動釋放一些(網(wǎng)上說是不足4M時候).但是不知道什么情況下突然占用就超過了7個G導致SQL Server 無內存可用,然后拒絕所有新的連接(目前根據(jù)情況推測是這樣導致的連接不上數(shù)據(jù)庫)。
推測超過分配內存的原因可能是,數(shù)據(jù)庫的表太大了,客戶那邊有人查詢的時候會瞬間占用幾十M的內存,瞬間超過了最多可用內存(分配7個G)。然后SQL Server就不管了,也不清理,直接擺爛???
嘗試處理辦法(利用電腦管家小火箭清理)
(實際使用中發(fā)現(xiàn)出現(xiàn)問題時候,還是沒用清不掉,內存占用依然很高,記錄下來)
無意中發(fā)現(xiàn)電腦管家的小火箭能夠清理內存,SQL Server 占用很多內存,一下清空了。
但是總不能每天上來點一下騰訊電腦管家的小火箭吧。
然后一直找騰訊電腦管家自動發(fā)射火箭,結果沒有找到,最多有一個自動清理垃圾。
在設置中發(fā)現(xiàn)了一個雙擊Alt按鍵就可以發(fā)射火箭清理內存。
然后想了一個“曲線救國”的辦法。
服務器上有一個接口軟件有定時任務,在定時任務中加了一段鍵盤雙擊Alt的代碼。讓定時任務觸發(fā)雙擊Alt,然后發(fā)射火箭,清理內存。目前還在測試階段。。。
//內存,可用空間
PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available MBytes");
//16208是我電腦的全部內存(MB)
Console.WriteLine($"清理前,內存占用:{(16208 - ramCounter.NextValue()) / 162}%");
SendKeys.Send("%");//發(fā)送Alt就是用%。
Thread.Sleep(100);
SendKeys.Send("%");
Thread.Sleep(5000);//等待5s,小火箭發(fā)射完成
Console.WriteLine($"清理后,內存占用:{((16208-ramCounter.NextValue())/162)}%");
也許需要清理一下數(shù)據(jù)庫中的某些表,刪除一些歷史數(shù)據(jù)才能好一些。
目前我這邊處理是這樣,不知道有沒有其他處理辦法。。
后續(xù)處理記錄
2022.12.30記錄
騰訊電腦管家火箭內存也沒有用。
后來解決辦法,還是把數(shù)據(jù)庫的最大服務器內存改的特別大,后面暫時沒有出現(xiàn)問題。文章來源:http://www.zghlxwxcb.cn/news/detail-620479.html
2023.01.06記錄
懷疑是服務器上的容災備份軟件導致的數(shù)據(jù)庫不能清理內存,導致數(shù)據(jù)庫連接不上。
以下是官方給的文檔。文章來源地址http://www.zghlxwxcb.cn/news/detail-620479.html
到了這里,關于Sql Server 占用內存高,不釋放內存,數(shù)據(jù)庫連接不上 問題處理記錄的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!