中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQLServer因為OS虛擬內存不足而hang住異常解決-鎖定內存頁 (LPIM)

發布時間:2020-08-13 12:30:03 來源:ITPUB博客 閱讀:194 作者:guocun09 欄目:關系型數據庫

異常:

DB: SQL Server2012SP3

OS: Windows2012

一線工程師反應系統訪問DB突然卡住了,DBA登錄DB檢查SQLServer發現DB無法登錄,之前SMSS已經連接的session中無法執行任何SQL。服務器CPU使用10%,memory使用達到了99%以上。過了十分鐘系統memory自己降低到了90%以下,DB可以訪問。

分析:

檢查SQLServer error log:

只是在一異常時間段有stack dump的記錄,但沒有太多有價值的信息 SQLServer因為OS虛擬內存不足而hang住異常解決-鎖定內存頁 (LPIM)

檢查windows性能計數器:

異常時間段OS memory確實耗盡 SQLServer因為OS虛擬內存不足而hang住異常解決-鎖定內存頁 (LPIM)

檢查windows log:

有虛擬內存不夠警告,

sqlserver.exe進程使用28GB(DBA設定的DB最大內存使用量),dllhost.exe進程使用12GB

正好把服務器的32GB+虛擬內存設定的8GB占滿!所以報錯內存不足!! SQLServer因為OS虛擬內存不足而hang住異常解決-鎖定內存頁 (LPIM)


解決:

上述dllhost.exe進程使用12GB一定存在問題,此塊可能系統層面補丁或病毒相關,已交給系統工程師分析。

但是否有辦法在OS內存不足時,DBA通過設定可以不影響到SQL server的正常運行呢?

答案是有的,軟微官方提供鎖定內存頁 (LPIM) 解決方法,通過Windows 策略將確定哪些帳戶可以使用進程將數據保留在物理內存中,從而阻止系統將數據分頁到磁盤的虛擬內存中。這樣即使OS內存不足時對SQL server的影響也會是最小了。

設定:

cmd->gpedit.msc->local computer policy->computer configuration->windows settings->security settings->local policies->user rights assignment-> Lock pages memory中加入添加 SQL Server 啟動帳戶 SQLServer因為OS虛擬內存不足而hang住異常解決-鎖定內存頁 (LPIM)

至此,鎖定內存頁 (LPIM)設置完成。

再持續觀察一段時間,系統再沒有發生系統內存不足SQLServer hang住問題。

------------------------------------------------------------ ------------------------------------------

以下附,軟微官方文檔說明:

https://docs.microsoft.com/zh-cn/sql/database-engine/configure-windows/server-memory-server-configuration-options?view=sql-server-ver15

鎖定內存頁 (LPIM)

此 Windows 策略將確定哪些帳戶可以使用進程將數據保留在物理內存中,從而阻止系統將數據分頁到磁盤的虛擬內存中。 鎖定內存中的頁可以在發生將內存分頁到磁盤時保持服務器的響應能力。 已向有權運行 sqlservr.exe 的帳戶授予 Windows 鎖定內存頁 (LPIM) 用戶權限時,在 SQL Server Standard Edition 和更高版本的實例中將“鎖定內存頁”  選項設置為“打開”  。

若要對 SQL Server 禁用“鎖定內存頁”選項,請為有權運行 sqlservr.exe( SQL Server 啟動帳戶)啟動帳戶的帳戶刪除“鎖定內存頁”用戶權限  。

設置此選項可實現根據其他內存分配器的請求擴大或縮小內存,不影響 SQL Server 動態內存管理。 使用“鎖定內存頁”用戶權限時,建議按 如上所述,為 max server memory 設置一個上限   。

重要

應僅在必要時設置此選項,即有跡象表明正在換出 sqlservr 進程時。在這種情況下,錯誤日志將報告錯誤 17890,類似于以下示例: A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: #### seconds. Working set (KB): ####, committed (KB): ####, memory utilization: ##%. SQL Server 2012 (11.x) 開始,Standard Edition 不需要 跟蹤標志 845 來使用“鎖定頁”。

啟用“鎖定內存頁”

啟用“鎖定內存頁”選項:

  1. “開始” 菜單上,單擊 “運行” 在“打開”  框中,鍵入 gpedit.msc

    將打開 “組策略” 對話框。

  2. “組策略” 控制臺上,展開 “計算機配置” ,再展開 “Windows 設置”

  3. 展開 “安全設置” ,再展開 “本地策略”

  4. 選擇 “用戶權利指派” 文件夾。

    細節窗格中隨即顯示出策略。

  5. 在該窗格中,雙擊“鎖定內存頁”  。

  6. 在“本地安全策略設置”對話框中,添加有權運行 sqlservr.exe ( SQL Server 啟動帳戶)的帳戶  。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高唐县| 三门县| 鹤峰县| 斗六市| 屏边| 伊吾县| 巩义市| 万载县| 凤山市| 潍坊市| 额敏县| 二手房| 五莲县| 白沙| 苏尼特右旗| 中山市| 高陵县| 新闻| 公主岭市| 松滋市| 京山县| 诸城市| 白银市| 甘德县| 水城县| 洱源县| 浏阳市| 四子王旗| 大石桥市| 汤原县| 比如县| 当阳市| 海安县| 彝良县| 大连市| 昭平县| 抚远县| 南川市| 乌拉特中旗| 偏关县| 分宜县|