亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

Mysql占用過高CPU時的優化手段(必看)

2024-07-24 13:12:41
字體:
來源:轉載
供稿:網友

Mysql占用CPU過高的時候,該從哪些方面下手進行優化?

占用CPU過高,可以做如下考慮:

1)一般來講,排除高并發的因素,還是要找到導致你CPU過高的哪幾條在執行的SQL,show processlist語句,查找負荷最重的SQL語句,優化該SQL,比如適當建立某字段的索引;

2)打開慢查詢日志,將那些執行時間過長且占用資源過多的SQL拿來進行explain分析,導致CPU過高,多數是GroupBy、OrderBy排序問題所導致,然后慢慢進行優化改進。比如優化insert語句、優化group by語句、優化order by語句、優化join語句等等;

3)考慮定時優化文件及索引;

4)定期分析表,使用optimize table;

5)優化數據庫對象;

6)考慮是否是鎖問題;

7)調整一些MySQL Server參數,比如key_buffer_size、table_cache、innodb_buffer_pool_size、innodb_log_file_size等等;

8)如果數據量過大,可以考慮使用MySQL集群或者搭建高可用環境。

9)可能由于內存latch(泄露)導致數據庫CPU高

10)在多用戶高并發的情況下,任何系統都會hold不住的,所以,使用緩存是必須的,使用memcached或者redis緩存都可以;

11)看看tmp_table_size大小是否偏小,如果允許,適當的增大一點;

12)如果max_heap_table_size配置的過小,增大一點;

13)mysql的sql語句睡眠連接超時時間設置問題(wait_timeout)

14)使用show processlist查看mysql連接數,看看是否超過了mysql設置的連接數

下面分享一例遇到過的案例:

網站在高峰時段訪問,點擊頁面有點卡。登陸服務器,發現機器負載有點高,并且mysql占用了很高的CPU資源,如下圖:

mysql占用cpu過高

MySQL負載居高不下,如果打開了慢查詢日志功能,最好的辦法就是針對慢查詢日志里執行慢的sql語句進行優化,如果sql語句用了大量的group by等語句,union聯合查詢等肯定會將mysql的占用率提高。所以就需要優化sql語句

除了優化sql語句外,也可以做一些配置上的優化。在mysql中運行show proceslist;出現下面回顯結果:

1.查詢有大量的Copying to tmp table on disk狀態

明顯是由于臨時表過大導致mysql將臨時表寫入硬盤影響了整體性能。

Mysql中tmp_table_size的默認值僅為16MB,在當前的情況下顯然是不夠用的。
mysql> show variables like "%tmp%";
+-------------------+----------+
| Variable_name | Value |
+-------------------+----------+
| max_tmp_tables | 32 |
| slave_load_tmpdir | /tmp |
| tmp_table_size | 16777216 |
| tmpdir | /tmp |
+-------------------+----------+
4 rows in set (0.00 sec)

解決辦法:調整臨時表大小

1)進mysql終端命令修改,加上global,下次進mysql就會生效

mysql> set global tmp_table_size=33554432;
Query OK, 0 rows affected (0.00 sec)

再次登陸mysql
mysql> show variables like "%tmp%";
+-------------------+----------+
| Variable_name | Value |
+-------------------+----------+
| max_tmp_tables | 32 |
| slave_load_tmpdir | /tmp |
| tmp_table_size | 33554432 |
| tmpdir | /tmp |
+-------------------+----------+
4 rows in set (0.01 sec)

2)my.cnf配置文件修改

[root@www ~]# vim my.cnf
.....
tmp_table_size = 32M

重啟mysql
[root@www ~]# /etc/init.d/mysqld restart

2.show processlist;命令的輸出結果顯示了有哪些線程在運行,可以幫助識別出有問題的查詢語句。比如下面結果:

Id User Host db Command Time State Info
207 root 192.168.1.25:51718 mytest Sleep 5 NULL
先簡單說一下各列的含義和用途,第一列,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崩潰。

解決辦法 :

在mysql的配置my.cnf文件中,有一項wait_timeout參數設置.即可設置睡眠連接超時秒數,如果某個連接超時,會被mysql自然終止。
wait_timeout過大有弊端,其體現就是MySQL里大量的SLEEP進程無法及時釋放,拖累系統性能,不過也不能把這個指設置的過小,否則你可能會遭遇到“MySQL has gone away”之類的問題。
通常來說,把wait_timeout設置為10小時是個不錯的選擇,但某些情況下可能也會出問題,比如說有一個CRON腳本,其中兩次SQL查詢的間隔時間大于10秒的話,那么這個設置就有問題了(當然,這也不是不能解決的問題,你可以在程序里時不時mysql_ping一下,以便服務器知道你還活著,重新計算wait_timeout時間):

MySQL服務器默認的“wait_timeout”是28800秒即8小時,意味著如果一個連接的空閑時間超過8個小時,MySQL將自動斷開該連接。

然而連接池卻認為該連接還是有效的(因為并未校驗連接的有效性),當應用申請使用該連接時,就會導致下面的報錯:

The last packet successfully received from the server was 596,688 milliseconds ago.
mysql> show variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout | 28800 |
+---------------+-------+
1 row in set (0.00 sec)

28800seconds,也就是8小時。

如果在wait_timeout秒期間內,數據庫連接(java.sql.Connection)一直處于等待狀態,mysql就將該連接關閉。這時,你的Java應用的連接池仍然合法地持有該連接的引用。當用該連接來進行數據庫操作時,就碰到上述錯誤。
可以將mysql全局變量wait_timeout的缺省值改大。

查看mysql手冊,發現對wait_timeout的最大值分別是24天/365天(windows/linux)。

比如將其改成30天

mysql> set global wait_timeout=124800;
Query OK, 0 rows affected (0.00 sec)

以上這篇Mysql占用過高CPU時的優化手段(必看)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色妞欧美日韩在线| 韩国视频理论视频久久| 国产成人精品在线观看| 午夜精品久久久久久久白皮肤| 欧美激情第一页xxx| 亚洲福利在线看| 国产精品情侣自拍| 日韩福利视频在线观看| 91久久嫩草影院一区二区| 亚洲色图第三页| 国产午夜精品一区理论片飘花| 97视频在线免费观看| 91av视频在线播放| 日韩av在线网| 国产一区二区在线免费视频| 亚洲性线免费观看视频成熟| 久久五月天色综合| 日韩中文理论片| 综合136福利视频在线| 国产视频在线一区二区| 亚洲视频视频在线| 精品视频在线导航| 亚洲人成欧美中文字幕| 欧美性高潮床叫视频| 91理论片午午论夜理片久久| 欧美裸体xxxx极品少妇软件| 中文字幕精品视频| 国产精品羞羞答答| 久久精品久久久久电影| 亚洲人av在线影院| 亚洲精品aⅴ中文字幕乱码| 色综合久久精品亚洲国产| 欧美精品性视频| 中日韩美女免费视频网站在线观看| 欧美激情视频一区二区| 亚洲影院高清在线| 97视频在线观看视频免费视频| 国产精品爽爽爽| 69av在线播放| 欧美激情视频免费观看| 国产成人高清激情视频在线观看| 98精品在线视频| 日日骚久久av| 国产亚洲精品成人av久久ww| 91欧美激情另类亚洲| 97不卡在线视频| 欧美成人高清视频| 午夜精品99久久免费| 国产不卡精品视男人的天堂| 亚洲欧美在线磁力| 久久久久久噜噜噜久久久精品| 欧美一级在线播放| 97精品视频在线播放| 97视频在线观看免费高清完整版在线观看| 动漫精品一区二区| 中文字幕日韩电影| 亚洲精品国产精品国自产观看浪潮| 欧美日韩视频在线| 久久的精品视频| 91精品国产综合久久久久久蜜臀| 国产视频精品va久久久久久| 国内精品视频久久| 日本精品久久久久影院| 在线视频欧美日韩精品| 国产精品入口免费视频一| 亚洲影院色在线观看免费| 亚洲第一网站免费视频| 国产亚洲精品美女久久久| 亚洲a∨日韩av高清在线观看| 欧美在线一级视频| 亚洲美女性生活视频| 国产91精品久久久久久久| 欧美特级www| 亚洲国产成人在线视频| 国产亚洲精品一区二区| 久久精品视频亚洲| 91久久久久久久| 国产一区二区在线免费| 国产一区二区三区在线视频| 日韩资源在线观看| 日韩国产欧美区| 国产精品久久一区| 日韩电影在线观看永久视频免费网站| 在线观看欧美视频| 国产精品成人观看视频国产奇米| 不用播放器成人网| 2019日本中文字幕| 国产精品大陆在线观看| 亚洲欧美综合v| 奇米一区二区三区四区久久| 91精品久久久久久| 成人免费淫片aa视频免费| 欧美激情国产日韩精品一区18| 亚洲精品自在久久| 色婷婷综合久久久久| 91精品国产91| 日韩欧美极品在线观看| 热久久99这里有精品| 51视频国产精品一区二区| 日韩高清欧美高清| 欧美日韩国产综合视频在线观看中文| 欧美性猛交xxxx黑人猛交| 热久久免费视频精品| 18久久久久久| 精品中文字幕在线2019| 亚洲a一级视频| 亚洲国内高清视频| 亚洲电影免费观看高清完整版在线| 91精品久久久久久久久久久| 欧美精品福利在线| 日韩中文字幕av| 美女扒开尿口让男人操亚洲视频网站| 亚洲欧美日韩国产精品| 欧美成人午夜激情| 国产98色在线| 久久精品国产99国产精品澳门| 久久精品视频99| 精品国产精品自拍| 91社区国产高清| 久久久久久久久久久av| 大量国产精品视频| 久久亚洲一区二区三区四区五区高| 久久久久久久久久久91| 2023亚洲男人天堂| 亚洲一区二区在线| 91亚洲精品久久久久久久久久久久| 亚洲欧美日韩精品久久| 一区二区三区视频观看| 国产精品毛片a∨一区二区三区|国| 啊v视频在线一区二区三区| 国产精品久久久久久久一区探花| 国外成人在线视频| 欧美插天视频在线播放| 成人精品一区二区三区电影黑人| 国产精品久久91| 亚洲男女自偷自拍图片另类| 青草青草久热精品视频在线网站| 国产精品视频内| 日韩国产高清视频在线| 国产精品直播网红| 欧美丰满老妇厨房牲生活| 久久久久久亚洲精品| 欧美激情视频网| 色妞久久福利网| 久久国产精品99国产精| 中文字幕在线精品| 九九精品在线播放| 亚洲欧美日韩中文在线制服| 亚洲成人久久网| 欧美激情视频在线观看| 欧美三级免费观看| 国产日本欧美一区二区三区| 亚洲人在线观看| 亚洲91精品在线观看| 97视频在线观看免费| 国产成人精品久久亚洲高清不卡| 成人精品一区二区三区电影黑人| 国内精品视频一区| 久久久久久久久网站| 国产网站欧美日韩免费精品在线观看| 日韩av成人在线观看| 欧美专区国产专区| 国产精品国产自产拍高清av水多| 精品视频—区二区三区免费|