mariadbがボトルネック
wordpress をマルチサイト、Elementorにすると、Nginx や php に多くのメモリーやプロセスを与えても、さまざまな作業で待たされる感じが発生しました。
ボトルネックとなっているのは、
mariadb ?
かもしれん。
mariadb の設定ファイルをのぞいてみると、
/etc/mysql/mariadb.conf.d/50-server.cnf
設定ファイルを修正
50-server.conf の内容を確認すると
# * Fine Tuning
という項目がありました。
設定ファイルの # コメントアウトを消して有効化します。
#
# * Fine Tuning
#
key_buffer_size = 128M
max_allowed_packet = 1G
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam_recover_options = BACKUP
max_connections = 100
table_cache = 64
設定して適用
mariadb を再起動
systemctl restart mariadb.service
念の為、nginx と php を再起動しておく。
systemctl restart nginx.service php8.2-fpm.service
効果は
今の所、サイト編集中に固まることは無くなった。
さらにMariaDB高速化設定
WordPress を MariaDB で高速化する場合、ポイントは「クエリ削減+メモリ最適化+I/O削減」です。
設定ファイル
/etc/mysql/mariadb.conf.d/50-server.cnf
マルチサイトや Elementor などの大量のメモリーを消費するコンテンツなどの場合。
高速化設定(メモリーが10GB RAM想定)
※ 設定ファイル #行を除いて表示させたい
grep -vE '^\s*#|^\s*$' 設定ファイル名
[server]
[mysqld]
pid-file = /run/mysqld/mysqld.pid
basedir = /usr
bind-address = 127.0.0.1
key_buffer_size = 256M
max_allowed_packet = 2G
thread_stack = 284K
thread_cache_size = 100
myisam_recover_options = BACKUP
max_connections = 100
table_cache = 64
expire_logs_days = 10
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
innodb_buffer_pool_size = 6G
innodb_log_file_size = 1G
innodb_flush_log_at_trx_commit = 2
innodb_buffer_pool_instances = 6
max_connections = 200
[embedded]
[mariadb]
