服务器应用服务为何卡顿?原来是内存耗尽惹的祸!
? ? ?? 做過運維的朋友們都可能會遇到:服務器應用程序運行慢的問題,最終各部門找上門,。
? ? ?? 今天在這我跟大家分享一個案例及其解決辦法。以前我跟很多朋友們也為這樣的事情苦惱過,我的服務器內存可是64G啊,這都不夠它吃的。
? ? ?? 后來我打開任務管理器一看原來是內存耗盡惹得禍,內存使用99%,CPU使用70%~100%之間變動,如果訪問應用的時候,服務器立馬變成100%,空閑時慢慢降下一點來。再看進程里面的變化,你就會發現SQL Server進程占用99%的內存,這時我才恍然大悟,原來是數據庫搗的鬼,。
? ? ?? 搗蛋鬼找到了,但還沒發現它是怎么搗蛋的,根據現象分析,服務每次重啟都得過一段時間才會出現這樣的問題,并且基本上一個禮拜后才出現這樣的問題。經過查詢資料知道,SQL Server在運行的時候會把訪問過的數據緩存起來,以提高再次訪問效率,也就是說內存耗盡的根找著了,!
? ? ? 分析到這里,很多朋友們可能都有解決辦法了,就是設置數據庫本身可以設置其使用的內存大小,靈感立馬來了,趕緊去設置數據庫使用的內存大小,下面給大家簡單說一下配置方法,以SQL Server 2012為例:
1、首先打開數據庫管理器;
2、然后在服務器名稱上點右鍵選屬性;
3、再點擊內存,進入內存選項配置界面
設置完后,運行一段時間以后另一個問題又出現了,雖然服務器運行一段時間以后數據庫把配置的內存吃完了,但是不會出現服務器死機卡頓現象,可應用服務程序運行還是會慢。
啊啊啊? ? 只能出大招了
設置周期性重啟SQL Server 2012 R2服務,下面給大家介紹一下方法:
1、建立一個重啟SQL Server 2012 R2服務批處理文件。
首先,新建一個txt文檔
接著,在剛才建的文檔中輸入一下命令
? ? net stop sqlserveragent
? ? net stop mssqlserver
? ? net start mssqlserver
? ? net start sqlserveragent
最后,保存文件名為ResetSqlServer,擴展名為bat
2、設置一個計劃任務(我服務器系統是Wondows Server 2012),定時自動執行上面新建的批處理文件。
首先,進入控制面板,點擊“查看方式”選“小圖標”
接著,單擊管理工具進入界面,雙擊“計劃任務程序”,進入如下界面
再接著,單擊創建任務,并輸入任務名稱,點確定保存
再接著,新建觸發器,設置好后,點確定保存
提醒:開始時間一定設置成空閑時間
最后,新建操作,點擊瀏覽按鈕,選擇剛剛建好的批處理文件ResetSqlServer.bat
到此為止,大功告成,修成正果!
總結
以上是生活随笔為你收集整理的服务器应用服务为何卡顿?原来是内存耗尽惹的祸!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CAP原理
- 下一篇: (2)MongoDB副本集自动故障转移原