Mysql

MySQLTuner 請求 - 高 CPU 問題

  • March 8, 2022

幾個月來,我一直在運營一個非常流行的網站,隨著它的發展,我們最近遇到了一些問題。

它是一個 2 核 Xeon、8GB、SSD 伺服器。我們每天吸引 +- 150k 人。

它是一個閃電般快速的 wordpress 堆棧和高達約 450 次並發(每分鐘 200 次瀏覽量),它仍然保持閃電般的速度。

如果超過這個值,負載就會變得瘋狂,從 1.5 到 20 或 30!我一直在嘗試微調my.cfg但我即將放棄,有大量資訊非常不同,所以我開始感到困惑。

這是我過去 4 天的 MySQLTuner

正如您將看到的,它告訴我增加查詢記憶體,但是這樣做絕對會比它保持在 8MB 時更早地破壞我的 CPU ……

我們還將所有表轉換為 InnoDB,並在過去看到了巨大的性能提升。

我希望我能從專業人士那裡得到一些見解。如果需要,我什至會一對一地支付一些費用。

謝謝!

允許格式化腳本嘗試的第二條建議:.sql

# list-IS-gvout.sql                    Last Updated 12/21/2018 mysqlservertuning.com
# email info@mysqlservertuning.com   sharable comments, please 
# DELETE the OUTFILE name(s) if they exist BEFORE you run this sql script
# OUTFILE name must be available to write results to destination of SELECT @@datadir
SELECT * INTO OUTFILE './isgv.txt' FROM information_schema.global_variables ORDER BY global_variables.variable_name;

# Maybe your text editor will have capacity to post to pastebin.com with this output file.

為您的my.cnf考慮的第一個建議

$$ mysqld $$部分:

query_cache_type=0  # from 1 (ON) to OFF for NO qc to conserve CPU cycles
query_cache_size=0  # from 8M to conserve RAM for more useful purposes
innodb_io_capacity=1800  # from default (200) to increase SSD IOPS limit
innodb_flushing_avg_loops=5  # from 30 to reduce innodb_buffer_pool_pages_dirty count

# added 20181221 8 PM CT USA

innodb_purge_threads=4  # from 1 to expedite purge activity

# this will require stop/start after my.cnf change     

innodb_buffer_pool_pages_dirty您可以使用 MySQL 命令監控計數:

SHOW GLOBAL STATUS LIKE '%dirty%';

如果您每 10 分鐘檢查一次,您應該會看到減少,並且 CPU 繁忙也會減少,直到您接近 0 個臟頁。

我仍然需要請求額外的資訊以允許額外的性能改進。

請查看我的個人資料,網路個人資料,並在您有空時與我們聯繫。

引用自:https://dba.stackexchange.com/questions/225306