Mysql cpu 持續100%執行解決過程
通過上一篇部落格分析了slow_log和general_log,給耗時較長的sql添加了組合索引,執行時間從原來的0.9s優化到0.02s;給併發較高的sql加上了快取,但是cpu使用率還是未出現一點下降,其實從日誌分析報告中已經可以看出,這些即使不優化也絕不至於會讓cpu持續100%執行,並且是瞬間從低位上升到100%,不像正常的因為流量增大而導致的,下圖優化前cpu使用率圖:
饒了一圈,想到了mysql 有show full processlist 來檢視當前程序情況;果斷試試看,終於找到了真相;原來是一條語句一直卡在sending data的狀態,如下圖(圖片為後補的,之前的持續時間遠大於圖中顯示的值)
因為mysql使用的是db.m3.large型別,只有2個cpu,所以只要有2條併發就100%了。下圖為 kill掉執行緒之後又重新請求再kill對應的cpu使用率圖;
和預想的一樣、由此可見確實是這個原因引起的。下面就是隻要優化具體的這條sql就可以了。本次問題的排查到這裡就算是完成了;
相關推薦
Mysql cpu 持續100%執行解決過程
通過上一篇部落格分析了slow_log和general_log,給耗時較長的sql添加了組合索引,執行時間從原來的0.9s優化到0.02s;給併發較高的sql加上了快取,但是cpu使用率還是未出現一點下降,其實從日誌分析報告中已經可以看出,這些即使不優化也絕不至於會讓cpu持
eclipse執行時CPU佔100%問題解決辦法
-startup plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar --launcher.library C:/Users/jiant/.p2/pool/plugins/org.eclipse.equinox.launch
解決MySQL CPU佔用100%的經驗總結
朋友主機 (Windows 2003 + IIS + PHP + MySQL) 近來 MySQL 服務程序 (MySQLd-nt.exe) CPU 佔用率總為 100% 高居不下。此主機有10個左右的 database,分別給十個網站呼叫。據朋友測試,導致 MySQLd-n
網禦星雲防火牆CPU使用率100%的解決方案
網禦星雲防火牆CPU使用率100%解決方案 前幾天收到河南某地方性銀行出現的故障:網禦星雲防火牆CPU使用率一直處於100%的狀態, 於是前去現場檢查裝置 發現 1.該防火牆策略做的並不多; 2.該防火牆當前的出入埠流量也並不大; 可以排除防火牆的工作負載過大導致CPU滿載
記一次mongodb CPU飆升100%的解決
問題的發現過程是這樣的,一些硬體裝置上傳的實時裝置資訊客戶端不能展現,於是查詢日誌,發現數據時間延遲非常嚴重,後臺邏輯把這些資料當作過期資料扔掉了,所以沒有進入實時資料的服務(此服務是單獨部署的)。 於是開始查問題,難道原始資料就是過期的?鑑於北京的霧霾天可能對北斗(PS:
MySQL資料庫拒絕訪問的解決過程
解決方案 1、步驟一:刪除 mysql.user表 中,Host欄位為 localhost 的匿名賬號(賬戶名為空)。 2、步驟二:建立 [email protected] 賬戶,用於本地連線資料庫。 步驟一 首先,確認下 mysql.user 表中是否存
VMware執行後,CPU佔用100%的問題解決
1.虛擬機器的記憶體引數過大,高於實體記憶體 http://www.51testing.com/?uid-166582-action-viewspace-itemid-145093 http://www.51testing.com/?uid-166582-action-vie
程式碼執行時 CPU佔用率100%的解決方法
原因: 建立連線後啟動新的執行緒,如果執行緒中有簡單粗暴的不含阻塞的while(1)迴圈,會持續佔用CPU,導致CPU佔用率極高。 解決: 在while(1)的大迴圈中插入一句sleep
記錄一次XordDos(BillGates)木馬導致Centos kworker執行緒佔滿CPU資源的解決過程
1.問題現象 通過top命令檢視資源佔用發現有大量kworker執行緒佔用CPU資源,如下圖。懷疑是系統問題或平臺程式導致的問題。 2.是否是程式導致的論證過程 因平臺有兩部分組成socket+web端,考慮可能是兩者中的一個導致的,因此採用以下三種方
通過ssh遠程執行命令導入定時任務報錯----解決過程
linux ssh su 今天在服務器中通過ssh遠程執行批量導入定時任務時發生了一個問題:總結如下,遠程服務器已設置好ssh秘鑰登錄,登錄用戶為普通用戶,但已設置好擁有免密sudo權限ssh 1.1.1.1 "sudo su -c "echo ‘30 5 * * 5 /bin/sh /root/
MySQL提示too many connections的一次解決過程
端口 存在 機器 很多 個數 https cat use skip 在一次故障過程中,登錄mysql時候提示too many connections,重啟數據庫後,很快再次提示,show processlist查看等待進程,發現很多類似:mysql>show proc
Mysql學習---使用Python執行存儲過程
cnblogs let als lock char 技術 width rgs 多個 使用Python執行存儲過程 使用Python執行存儲過程[2部分]: 1.執行存儲過程,獲取存儲過程的結果集 2.將返回值設置給了 @_存儲過程名_序號 =#!/usr/bin/en
mongoDb CPU利用率100%的分析和解決
用戶 定位 idt ase 數據 mes pre 我們 工作 在公司的項目中,突然出現過一個情況,mongodb 的CPU利用率到達100%,導致服務器這邊卡死了,請求了半天無響應,提示請求超時。 因為,當時APP用戶可能會在某一個時間段集中的使用,所以,請求量一下子就飆上
Oracle 11g 安裝過程中“檢查網絡配置要求 未執行”解決方法
cal 這樣的 測試的 http 項目 align 網絡 net system 正在檢查網絡配置要求... 檢查完成。此次檢查的總體結果為: 未執行 網上查了一下,很多朋友都遇到這個問題而無從下手,其實解決起來很容易的。 只需要在 Windows XP 中安裝 Micro
react-native-cli執行專案及打包apk失敗的解決過程
剛開始學習react native,第一步自然是搭建好開發環境,node及jdk本身就有,Python2、Android studio以及Android sdk的安裝倒是沒什麼大問題,按照官網的教程做就行了,還有Android studio我目前理解的是其實主要作用就是配置對應版本的安卓模擬器或者是安裝sdk
轉!mysql 命令列下 通過DELIMITER臨時改變語句分隔符 執行儲存過程
mysql 在 Navicat 介面工具 執行儲存過程ok,但是在命令列下執行失敗。 原因在於,預設的MySQL語句分隔符為' ; ',在輸入' ; '的時候,“以為”語句已經結束了,但實際上語句還沒有結束。 解決方案:使用DELIMITER臨時改變命令列的語句分隔符,在儲存過程建立之後再修改分隔符為原來
一.背景 先說下windbg使用場景.各位coder在工作中或多或少都會遇到下面四種情況 1.原生代碼好好的,放伺服器上執行一段時間後,IIS服務突然佔用 w3wp.exe CPU突然100% ,
一.背景 先說下windbg使用場景.各位coder在工作中或多或少都會遇到下面四種情況 1.原生代碼好好的,放伺服器上執行一段時間後,IIS服務突然佔用 w3wp.exe CPU突然100% ,不得不回收應用程式池,如果哪次回收晚了,被客戶發現,後果很痛苦~ 2.你的w3wp.
Visual Studio 2013執行時卡頓 CPU佔用超高的解決方法
文章原始連線: http://feotech.com/?p=116 Visual Studio 2013執行時卡頓 CPU佔用超高的解決方法 使用Visual C++ 編寫程式時發現輸入程式碼時特別卡頓,CPU資源佔用也特別高。經過在網際網路上查詢發現是缺少安裝元件。 參考資料原文 ht
MySQL-SQLyog執行儲存過程和儲存函式等
1.開啟SQLyog在目錄樹-函式(儲存過程)資料夾上右鍵,建立函式(建立儲存過程) 2.按照MySQL定義函式的規則,新定義一個函式: 3. 然後新建查詢編輯器,呼叫自定義的函式。 命令:SELECT function_name(params1, ...),函式名稱
Linux(2)---記錄一次線上服務 CPU 100%的排查過程
Linux(2)---記錄一次線上服務 CPU 100%的排查過程 當時產生CPU飆升接近100%的原因是因為專案中的websocket時時斷開又重連導致CPU飆升接近100% 。如何排查的呢 是通過日誌輸出錯誤資訊: 得知websocket時時重新 連線的資訊,然後找到原因 解決了。 當然這