Bitnamiのメモリ量はどのように調整されているのか

Amason LightsailからBitnamiブループリント廃止の話があり、
これを機にサーバーを整理するためOSのみのインスタンス(Amazon Linux 2023)を借りてこのWordPressサイトを引越することにした。

基本的には公式チュートリアルを元に、最新のパッケージを使う形で構築した。
しかしなんせメモリの少ない貧乏インスタンスなので、すぐにMariaDBが落ちてしまい、チューニングが必要だった。

そこで設定の参考にするため、これまで使っていたBitnamiがどのようにメモリ量の設定をしていたのかを調べ、
以下記録として残すことにした。

MariaDB

Bitnami WordPress環境のmy.cnfは、/opt/bitnami/mariadb/confにあった。
/opt/bitnami/mariadb/conf/bitnami/memory内にいくつかの設定ファイルがあり、インスタンスのプランに合わせて適切なものを読み込むようにしているようだ。

my-micro.conf

[mysqld]
#wait_timeout = 120
long_query_time = 1
query_cache_size=0
innodb_buffer_pool_size=16M
#innodb_log_file_size=128M
#innodb_flush_method=O_DIRECT
#tmp_table_size=64M
#max_connections = 2500
#max_user_connections = 2500
#key_buffer_size=64M

my-small.conf

[mysqld]
#wait_timeout = 120
long_query_time = 1
query_cache_size=0
innodb_buffer_pool_size=256M
#innodb_log_file_size=128M
#innodb_flush_method=O_DIRECT
#tmp_table_size=64M
#max_connections = 2500
#max_user_connections = 2500
#key_buffer_size=64M

my-medium.conf

[mysqld]
#wait_timeout = 120
long_query_time = 1
query_cache_size=0
innodb_buffer_pool_size=256M
#innodb_log_file_size=128M
#innodb_flush_method=O_DIRECT
#tmp_table_size=64M
#max_connections = 2500
#max_user_connections = 2500
#key_buffer_size=64M

my-large.conf

[mysqld]
#wait_timeout = 120
long_query_time = 1
query_cache_size=0
innodb_buffer_pool_size=2024M
#innodb_log_file_size=128M
#innodb_flush_method=O_DIRECT
#tmp_table_size=64M
#max_connections = 2500
#max_user_connections = 2500
#key_buffer_size=64M

my-xlarge.conf

[mysqld]
#wait_timeout = 120
long_query_time = 1
query_cache_size=0
innodb_buffer_pool_size=2048M
#innodb_log_file_size=128M
#innodb_flush_method=O_DIRECT
#tmp_table_size=64M
#max_connections = 2500
#max_user_connections = 2500
#key_buffer_size=64M

my-2xlarge.conf

[mysqld]
#wait_timeout = 120
long_query_time = 1
query_cache_size=0
innodb_buffer_pool_size=4096M
#innodb_log_file_size=128M
#innodb_flush_method=O_DIRECT
#tmp_table_size=64M
#max_connections = 2500
#max_user_connections = 2500
#key_buffer_size=64M

AL2023の場合は、/etc/my.cnf.d/memory.cnfのようなファイルを作って上記のような設定を記載する。
MariaDBを再起動すれば反映される。

sudo systemctl restart mariadb

正しく反映されているか確認したい場合は、MariaDBに入って下記のSQL文で確認できる。

SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'query_cache_size';
SHOW VARIABLES LIKE 'long_query_time';

PHP

Bitnami環境のwww.confは、/opt/bitnami/php/etc/php-fpm.dにあった。
ここでも複数の設定ファイルに分かれており、/opt/bitnami/php/etc/memory内のいくつかの設定ファイルからインスタンスのプランに合わせて適切なものを読み込むようにしているようだ。

memory-micro.conf

; Bitnami memory configuration for PHP-FPM
;
; Note: This will be modified on server size changes

pm.max_children=15
pm.start_servers=10
pm.min_spare_servers=10
pm.max_spare_servers=10
pm.max_requests=5000

memory-small.conf

; Bitnami memory configuration for PHP-FPM
;
; Note: This will be modified on server size changes

pm.max_children=30
pm.start_servers=20
pm.min_spare_servers=20
pm.max_spare_servers=22
pm.max_requests=5000

memory-medium.conf

; Bitnami memory configuration for PHP-FPM
;
; Note: This will be modified on server size changes

pm.max_children=60
pm.start_servers=40
pm.min_spare_servers=40
pm.max_spare_servers=45
pm.max_requests=5000

memory-large.conf

; Bitnami memory configuration for PHP-FPM
;
; Note: This will be modified on server size changes

pm.max_children=120
pm.start_servers=80
pm.min_spare_servers=80
pm.max_spare_servers=90
pm.max_requests=5000

memory-xlarge.conf

; Bitnami memory configuration for PHP-FPM
;
; Note: This will be modified on server size changes

pm.max_children=200
pm.start_servers=130
pm.min_spare_servers=130
pm.max_spare_servers=150
pm.max_requests=5000

memory-2xlarge.conf

; Bitnami memory configuration for PHP-FPM
;
; Note: This will be modified on server size changes

pm.max_children=400
pm.start_servers=260
pm.min_spare_servers=260
pm.max_spare_servers=300
pm.max_requests=5000

AL2023の場合は、/etc/php-fpm.d/www.confの該当箇所を上記のように修正する。
PHP-FPMを再起動すれば反映される。

sudo systemctl restart php-fpm

参考

関連記事

コメント

この記事へのコメントはありません。

TOP