CPU持續100%分析並解決

z_cloud_for_SQL發表於2022-12-26

背景

接到客戶電話,說某系統資料庫伺服器CPU利用率從上午8點開始到現在基本上都是100%的情況, 影響到了業務。讓給看看是什麼原因導致的,怎麼緊急處理一下


現象


檢視CPU利用率,確實一直是90%以上的情況。



在CPU高的地方檢視當時執行的語句,發現有一類語句併發量非常大,且大多數的執行狀態為 runnable(等待執行)。runnable代表這個會話沒有資源等待,可以執行,但沒有 CPU 可用,可以理解為正在等待 CPU 這項系統資源。出現這種等待,往往是系統沒有足夠的CPU來處理併發任務。


基本上可以確定導致CPU高的原因就是這條語句了。


語句內容:

    SELECT        sendtaskvi0_.idAS id1_0_,        sendtaskvi0_.click_urlAS click_ur2_0_,        sendtaskvi0_.create_timeAS create_t3_0_,        sendtaskvi0_.crf_nameAS crf_name4_0_,        sendtaskvi0_.ysmcAS ysmc37_0_FROM        dcrf_all_**** sendtaskvi0_WHERE        sendtaskvi0_.stage_id= @P0        AND sendtaskvi0_.person_id = @P1        AND sendtaskvi0_.plan_module_num = @P2        AND sendtaskvi0_.task_type = @P3        AND sendtaskvi0_.xh = @P4        AND sendtaskvi0_.table_name = @P5        AND sendtaskvi0_.sf_status <> @P6


    dcrf_all_**** sendtaskvi0_ 為檢視,定義如下圖:


    分析

    透過SQL專家雲智慧分析,提示檢視裡相關的兩個表並沒有相應的索引,透過專家雲生成的兩個建立索引的指令碼執行建立。



    解決

    建立索引後CPU得到明顯下降:


    活動會話數量明顯下降:


    索引的重要性


    一個系統的整體緩慢 往往都是因為索引問題導致的,最佳化索引是對系統最簡單的保養。不要小看一條語句的威力,一條語句足可以讓你的系統徹底無法工作,相反最佳化一條重要的高頻語句就可以讓你的系統變的流暢。


    北京格瑞趨勢科技有限公司是聚焦於資料服務的高新技術企業,成立於2008年,創始團隊及核心技術人員來自微軟和雅虎。微軟資料平臺金牌合作伙伴,衛寧健康資料平臺戰略合作伙伴。透過產品+服務雙輪驅動的業務模式,14年間累計服務4000+客戶,覆蓋網際網路、市政、交通、電信、醫療、教育、電力、製造業等各個領域。

    瑞 趨 勢

    格 

    來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70023658/viewspace-2929564/,如需轉載,請註明出處,否則將追究法律責任。

    相關文章