iT邦幫忙

0

Mysql CPU使用率過高

  • 分享至 

  • xImage

最近mysql cpu常常負載,因為網頁是請人家寫的。

只能先從my.cnf 設定下手。

[mysqld_safe]
log_error=/var/log/mysql/mysql_error.log

[mysqld]
log_error=/var/log/mysql_error.log
general_log_file="/var/log/mysql-general.log"
general_log=0
slow-query-log = 1
slow_query_log_file=/var/log/mysql_slow.log
long_query_time = 1

character-set-server=utf8
collation-server=utf8_unicode_ci
character-set-server=utf8
collation-server=utf8_unicode_ci
character-set-filesystem=utf8

default-storage-engine=MyISAM
innodb_file_per_table=1
performance-schema=1
max_allowed_packet=268435456
open_files_limit=40000
innodb_buffer_pool_size=2G
innodb_log_file_size = 2G
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

key_buffer_size=100M
tmp_table_size=157M
sort_buffer_size=512K
join_buffer_size=1M
max_heap_table_size=157M
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

CPU:E3-1270v5 3.6GHz
RMA:16G
HDD

每日訪問量 12290

請問這樣設定是否正確?是否還有優化的空間。!
感謝!

https://i.imgur.com/qShy99T.jpg
https://ithelp.ithome.com.tw/upload/images/20230329/20082016EcgpXN78Zw.jpg

看更多先前的討論...收起先前的討論...
wiseguy iT邦超人 1 級 ‧ 2023-03-28 10:30:30 檢舉
DB config 並沒有絕對值。你要把目前主機的 CPU / RAM / 是否用SSD 等 infra info 也列出來,然後估一下平常負載大約多少人(連線),高峰大約多少人(連線),才知道你這參數合不合理。
莫爺 iT邦研究生 5 級 ‧ 2023-03-28 11:05:56 檢舉
CPU:E3-1270v5 3.6GHz
RMA:16G
HDD

每日訪問量 12290
看一下 mysql_slow.log ,是不是有大量的 query 沒有 index 或用到 index 。
default-storage-engine=MyISAM 通常是建議用 innodb 。如一定要用 MyISAM key_buffer_size 調高點。如果你的 web 會大量寫入 MyISAM 為有寫入 lock 的問題 會1個連線卡1個連線。
莫爺 iT邦研究生 5 級 ‧ 2023-03-28 15:00:18 檢舉
感謝回應,我看slow.log,並沒有index 在佇列裡,都是inner join。
目前已把key_buffer_size改到512m,至於會用到myisam,應該說預設我就沒改了。
對sql server不是很熟,所以一直卡cpu覺得很困擾。
莫爺 iT邦研究生 5 級 ‧ 2023-03-28 15:09:23 檢舉
key_buffer_size改到512m,狀況依舊。
把 slow.log 的 query 抓出來(常用或資料多)。用explain 看一下 有沒有 full table scan
你的 long_query_time 設1秒 。也就是說 mysql_slow.log 裡頭的 query 都是超過 1秒的。正常這都是要看一下或調整的 query.
莫爺 iT邦研究生 5 級 ‧ 2023-03-28 17:02:16 檢舉

query_cache_type=1
default_storage_engine = InnoDB

目前看起來cpu比較正常點。
感謝!
莫爺 iT邦研究生 5 級 ‧ 2023-03-29 01:21:44 檢舉
回家後又開始卡了,頭痛!
把圖上那一堆重覆的query 的 explain 貼上來
莫爺 iT邦研究生 5 級 ‧ 2023-03-29 13:40:21 檢舉
這次應該解決了,原來用PHPMYADMIN備份資料庫還原時,沒把索引帶上。
後來把索引補上就正常了。

感謝!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答