Featured image of post 優化 Mariadb 參數,以提高並發性能,為 WordPress 網站提供更好的性能

優化 Mariadb 參數,以提高並發性能,為 WordPress 網站提供更好的性能

使用 MySQLTuner 來調整 MariaDB 參數,以提高 MariaDB 數據庫的性能。

最後更新
約 521 字

前言

最大化 MariaDB 數據庫的性能,需要對 MariaDB 的參數進行調整,以適應不同的應用場景。 MariaDB 的性能已經非常好,但是在某些情況下,可能需要進行一些調整,以適應不同的應用場景。

優化工具

MySQLTuner

MySQLTuner 是一個 Perl 腳本,用於調整 MariaDB 參數。它可以分析 MariaDB 的組態檔案,以提高 MariaDB 數據庫的性能。 可以自動化許多 MariaDB 的參數調整,不用手動計算各種參數的值,而且會根據 MariaDB 的實際情況提供一些建議。

另外也會提供一些安全建議,例如密碼強度、漏洞等。下載的檔案是 MySQLTuner 的主要腳本和一些基本密碼和漏洞列表。

1
2
3
wget http://mysqltuner.pl/ -O mysqltuner.pl
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/basic_passwords.txt -O basic_passwords.txt
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/vulnerabilities.csv -O vulnerabilities.csv

使用方法

1
perl mysqltuner.pl

參考設定

以下設定是基於 20 核心、60GB 內存的伺服器,適用於大型數據庫。數據庫佔用的內存大約 30GB,並且有 500 個同時連接。 數據庫主要使用 InnoDB 引擎,主要用於讀取操作,並且有一些寫入操作,用於架設 WordPress 網站。

修改 /etc/mysql/mariadb.conf.d/50-server.cnf:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
basedir = /usr
bind-address = 0.0.0.0
binlog_cache_size = 1M
binlog_ignore_db = mysql
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
expire_logs_days = 10
innodb_buffer_pool_instances = 8
innodb_buffer_pool_size = 24G
innodb_file_per_table = ON
innodb_flush_method = O_DIRECT
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
innodb_log_buffer_size = 16M
innodb_log_file_size = 6G
innodb_log_files_in_group = 4
innodb_stats_on_metadata = OFF
innodb_thread_concurrency = 32
join_buffer_size = 1M
key_buffer_size = 384M
log_bin = mysql-bin
log_error = mysql-bin.err
max_allowed_packet = 64M
max_connections = 505
max_heap_table_size = 2048M
max_user_connections = 500
myisam_sort_buffer_size = 384M
open_files_limit = 65536
performance_schema = ON
pid-file = /run/mysqld/mysqld.pid
port = 3306
query_cache_limit = 2M
query_cache_size = 512M
read_buffer_size = 768K
read_rnd_buffer_size = 2M
# server-id 用應用於主從複製
server-id = 7414657
skip-name-resolve = 1
skip-networking = 0
sort_buffer_size = 6M
table_definition_cache = 4096
table_open_cache = 8000
thread_cache_size = 32
tmp_table_size = 2048M

使用 Hugo 建立
主題 StackJimmy 設計