主頁 > 知識庫 > SQL Server內(nèi)存遭遇操作系統(tǒng)進程壓榨案例分析

SQL Server內(nèi)存遭遇操作系統(tǒng)進程壓榨案例分析

熱門標簽:智能外呼系統(tǒng)需要多少錢 競圣地圖標注服務(wù) 智能語音車載電話機器人 云南全自動外呼系統(tǒng)公司 外呼系統(tǒng)的話術(shù) 貴州外呼回撥系統(tǒng)是什么 陽光創(chuàng)信ai外呼獲客系統(tǒng)助力 衛(wèi)星地圖標注距離 安陽天音防封電銷卡
場景:

  最近一臺DB服務(wù)器偶爾出現(xiàn)CPU報警,我的郵件報警閾(請讀yù)值設(shè)置的是15%,開始時沒當回事,以為是有什么統(tǒng)計類的查詢,后來越來越頻繁。

探索:

  我決定來查一下,究竟是什么在作怪,我排查的順序如下:

  1、首先打開Cacti監(jiān)控,發(fā)現(xiàn)最近CPU均值在某天之后驟然上升,并且可以看到System\Processor Queue Length 和 sqlservr\%ProcessorTime 也在顯著的變化。

  

  2、從最容易入手的低效SQL開始,考慮是不是最近業(yè)務(wù)做了什么修改?連接到該SQL實例,打開活動監(jiān)視器,展開“最近耗費大量資源的查詢”,并CPU時間倒序,在這里并未發(fā)現(xiàn)有即時的耗費資源的查詢。據(jù)個人經(jīng)驗,這里的值如果是4位數(shù),分鐘內(nèi)執(zhí)行次數(shù)3位數(shù),一般的服務(wù)器CPU大概就10%以上,如果cpu時間那里是5位數(shù),且分鐘內(nèi)執(zhí)行次數(shù)也很高,幾百次以上,那CPU一般就會不淡定了。圖片僅為演示

  

  3、沒有耗資源的SQL,這是DBA最不愿意看到的結(jié)果,因為也許,SQL Server受到了來自內(nèi)部或者外部的壓力,使得自己花費了過多的時間去處理與操作系統(tǒng)的溝通去了。SQL Server常見的非查詢低效類的性能問題,絕大多數(shù)都來自于內(nèi)存或者硬盤,而這兩者有的時候需要同時研究對比基線,才能確定誰是因,誰是果。在這里,我們首先查看SQL Server內(nèi)存使用情況,當打開性能計數(shù)器時,我和我的小伙伴們都驚呆了……安裝了64G內(nèi)存的數(shù)據(jù)庫,SQL Server的TargetMemory僅有500多兆!這其中StolenPage還占用了200多兆,數(shù)據(jù)庫DataPage僅有200多兆的內(nèi)存可供使用,Oh,Shit!雖然我很不想用“去哪了”這三個字,但是“我的內(nèi)存去哪了“?同時我們也注意到PageLifeExpectancy值只有26(一個內(nèi)存充足的服務(wù)器,這個值至少應(yīng)該是上W的),而很早之前我們津津樂道的"Cache Hit Ration"卻仍然保持一個比較高的水準98! 這個案例告訴我們,緩存命中率這個性能計數(shù)器很多時候說明不了什么問題。

  

  4、OK,既然這樣,是誰占用了本該屬于我親愛的SQL Server的內(nèi)存呢?我們繼續(xù),打開Wiindows任務(wù)管理,選定進程選項卡,點擊顯示所有用戶進程,發(fā)現(xiàn)svchost.exe占用了絕大多數(shù)的60G內(nèi)存!

  

  5、那svchost.exe又是個什么東西呢?我們下面就用到ProcessMonitor這個工具了,打開后自動加載所有Wiindows進程,按內(nèi)存排序后,鼠標移至svchost.exe進程上,顯示為Remote Registry服務(wù)。

  

  6、查到這里,事情已經(jīng)有了一定的眉目,這個多半是windows內(nèi)存泄露Bug,遂google關(guān)鍵詞: windows server 2008 r2 remote registry memory leak 

  找到如下鏈接:http://support.microsoft.com/kb/2699780/en-us

  果然:Assume that you query performance counters on a remote computer by using an application on a computer that is running Windows 7 or Windows Server 2008 R2. In this situation, the memory usage of the Remote     Registry service on the local computer increases until the available memory is exhausted.

解決方法:

  1、重啟服務(wù)器,安裝hotfix

  2、因為重啟服務(wù)器會影響到業(yè)務(wù),所以我在想重啟RemoteRegistry服務(wù),應(yīng)該也能暫時解決問題,這個bug應(yīng)該是在某種固定情景下發(fā)生的。

  隨后,在合適的時間,我重啟了這個服務(wù),SQL Server的TargetMemory重新恢復(fù)到60多G,CPU也正常了,目前為止該問題未再發(fā)生。

后續(xù)跟進:

  DBA的工作,說難也難,說容易也容易,發(fā)現(xiàn)問題,解決問題還不夠,我們還要意識到自己的欠缺,在本案例中,我之前并沒有建立起SQL Server內(nèi)存的監(jiān)控,所以沒有在第一時間就發(fā)現(xiàn)病情的嚴重性,好在該服務(wù)器并未承擔重要業(yè)務(wù),否則后果不堪設(shè)想,說不定早就崩潰過了,后怕之處在于,如果崩潰了,自然要重啟服務(wù)器,到那個時候,我們連第一現(xiàn)場都沒有,當leader問起來,我又該使勁撓頭了。

  該事件之后,我建立起了SQL Server內(nèi)存的監(jiān)控,1天后,我從新的監(jiān)控數(shù)據(jù)中,又發(fā)現(xiàn)了一臺服務(wù)器出現(xiàn)相同的問題!我很慶幸,不是慶幸服務(wù)器沒宕機,而是慶幸我做對了。

  附一張內(nèi)存監(jiān)控圖,可以看到服務(wù)重啟之后,SQL Server的Total Pages一直在上升,并逐漸穩(wěn)定,Page life expectancy也在變得越來越大,CPU也能指示病癥已消除,我很欣慰。

  

  

 

總結(jié):

  服務(wù)器在出現(xiàn)性能問題前,大部分是提前有一些征兆的,尤其是內(nèi)存泄露,因為內(nèi)存是一點點被壓榨掉的,最后到達一個極限時,SQL Server就會突然Crash掉,然后只留給你一個dump,微軟就笑了。有經(jīng)驗的大夫應(yīng)該從日常的腰酸背痛中看出一些端倪,然后進一步分析,提前預(yù)知重大疾病的發(fā)生,這就是DBA的價值。這個案例,告訴我,重視服務(wù)器異常的細節(jié)變化,才能做到防患于未然。

您可能感興趣的文章:
  • SQL語句實現(xiàn)查詢SQL Server內(nèi)存使用狀況
  • 優(yōu)化SQL Server的內(nèi)存占用之執(zhí)行緩存
  • SQL Server 數(shù)據(jù)頁緩沖區(qū)的內(nèi)存瓶頸分析
  • SqlServer如何通過SQL語句獲取處理器(CPU)、內(nèi)存(Memory)、磁盤(Disk)以及操作系統(tǒng)相關(guān)信息
  • SQL Server 2008 R2占用cpu、內(nèi)存越來越大的兩種解決方法
  • 解決SQL Server虛擬內(nèi)存不足情況
  • 揭秘SQL Server 2014有哪些新特性(1)-內(nèi)存數(shù)據(jù)庫
  • 淺談SQL Server 對于內(nèi)存的管理[圖文]
  • SQL Server在AlwaysOn中使用內(nèi)存表的“踩坑”記錄
  • sql server學習基礎(chǔ)之內(nèi)存初探

標簽:預(yù)約服務(wù) 營口 寧夏 湘潭 河源 欽州 鄂爾多斯 周口

巨人網(wǎng)絡(luò)通訊聲明:本文標題《SQL Server內(nèi)存遭遇操作系統(tǒng)進程壓榨案例分析》,本文關(guān)鍵詞  SQL,Server,內(nèi)存,遭遇,操作系統(tǒng),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL Server內(nèi)存遭遇操作系統(tǒng)進程壓榨案例分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQL Server內(nèi)存遭遇操作系統(tǒng)進程壓榨案例分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章