云樞智聯視角
關注互聯網,關注技術開發,透析與分享移動互聯網行業最新動態MYSQL使服務器內存CPU占用過高問題的分析及解決方法
時間:2019-02-17 13:37:50 閱讀:48213次 分類:APP開發
最近的項目剛開始上線,以前沒覺得什么,現在客戶都反應系統反應太慢,需要解決,于是我在服務器查看了一下CPU占用情況,果然,mysql數據庫就占了百分之九十六七,所以想到了必須要使CPU占用率降下來。
(1)show processlist; 結果如下
mysql> show processlist;
+--------+-----------------+--------------------+------+---------+---------+-----------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+-----------------+--------------------+------+---------+---------+-----------------------------+------------------+
| 4522 | event_scheduler | localhost | NULL | Daemon | 2315739 | Waiting for next activation | NULL |
| 258137 | CMAbutler | 10.14.85.121:55035 | CMA | Sleep | 5337 | | NULL |
| 258138 | CMAbutler | 10.14.85.121:55036 | NULL | Sleep | 5360 | | NULL |
| 260446 | root | localhost | NULL | Query | 0 | NULL | show processlist |
| 264040 | root | localhost | CMA | Sleep | 0 | | NULL |
+--------+-----------------+--------------------+------+---------+---------+-----------------------------+------------------+
5 rows in set (0.00 sec)
先簡單分析一下各列的含義和用途,第一列,id,一個標識,你要kill一個語句的時候很有用。user列,顯示單前用戶,如果不是root,這個命令就只顯示你權限范圍內的sql語句。host列,顯示這個語句是從哪個ip的哪個端口上發出的。呵呵,可以用來追蹤出問題語句的用戶。db列,顯示這個進程目前連接的是哪個數據庫 。command列,顯示當前連接的執行的命令,一般就是休眠(sleep),查詢(query),連接(connect)。time列,此這個狀態持續的時間,單位是秒。state列,顯示使用當前連接的sql語句的狀態,很重要的列,后續會有所有的狀態的描述,請注意,state只是語句執行中的某一個狀態,一個sql語句,已查詢為例,可能需要經過copying to tmp table,Sorting result,Sending data等狀態才可以完成,info列,顯示這個sql語句,因為長度有限,所以長的sql語句就顯示不全,但是一個判斷問題語句的重要依據。
常見問題 :
一般是睡眠連接過多,嚴重消耗mysql服務器資源(主要是cpu, 內存),并可能導致mysql崩潰。
(2)首先查看等待時間
mysql> show global variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout | 28800 |
+---------------+-------+
1 row in set (0.00 sec)
(3)重設值
mysql> set global wait_timeout=200;
云樞智聯(海南)信息技術有限公司(原中江網絡),成立于2005年,經過20多年定制開發經驗,積累了大量技術儲備和定制開發經驗,是一家集軟件研發、互聯網應用為一體的綜合信息技術服務提供商。公司擁有核心的策劃團隊和專業的技術研發團隊,致力于采用領先的信息技術,長期為涉及智慧園區/廠區/校園領域的各個企業提供快速、高效、安全的信息技術支持。公司立足智慧園區和智慧教育行業,通過軟硬件的研發和互聯網應用,疏通各企業間“端到端”的信息傳輸,靈活滿足智慧園區和智慧教育企業間不同用戶的需求,為其提供完善的信息化解決方案。
園區管理系統,提供智慧園區綜合管理系統,智慧園區設計方案咨詢,智慧園區管理系統、...