Estou executando um site WordPress em uma instância AWS EC2 t3a.medium (4 Gb Ram) usando Bitnami. A RAM do servidor geralmente fica completamente cheia, fazendo com que o servidor trave e eu precise reiniciá-lo no console ec2.
Esse é o monitor de tempo de atividade:
Procurei ajustar minhas configurações de php-fpm para mitigar esse problema.
Aqui está a configuração atual:
opt/bitnami/php/etc$ cat memory.conf
pm.max_children = 47
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 30
pm.max_requests = 2500
Arquivo de configuração MariaDB:
[mysqladmin]
user=****************
[mysqld]
skip_name_resolve
explicit_defaults_for_timestamp
basedir=/opt/bitnami/mariadb
port=3306
tmpdir=/opt/bitnami/mariadb/tmp
socket=/opt/bitnami/mariadb/tmp/mysql.sock
pid_file=/opt/bitnami/mariadb/tmp/mysqld.pid
max_allowed_packet=16M
bind_address=127.0.0.1
log_error=/opt/bitnami/mariadb/logs/mysqld.log
slow_query_log=1
slow_query_log_file=/opt/bitnami/mariadb/logs/mysqld_slowquery.log
long_query_time=10.0
character_set_server=utf8
collation_server=utf8_general_ci
plugin_dir=/opt/bitnami/mariadb/lib/plugin
[client]
port=3306
socket=/opt/bitnami/mariadb/tmp/mysql.sock
default_character_set=utf8
plugin_dir=/opt/bitnami/mariadb/lib/plugin
[manager]
port=3306
socket=/opt/bitnami/mariadb/tmp/mysql.sock
pid_file=/opt/bitnami/mariadb/tmp/mysqld.pid
!include /opt/bitnami/mariadb/conf/bitnami/memory.conf
memória.conf:
long_query_time = 1
query_cache_limit=2M
query_cache_type=1
query_cache_size=128M
innodb_buffer_pool_size=256M
/opt/bitnami/mariadb/logs/mysqld_slowquery.log: https://pastebin.com/ZVecqAXp
Aqui está o que executo no meu t3a.nano (512 MB de RAM), que executa cinco sites Wordpress de baixo volume, além de alguns outros softwares. O t3.medium tem quatro vezes mais CPU do que meu t3.nano e oito vezes mais memória RAM, então você provavelmente poderia multiplicar esses números por quatro ou até oito - seria necessária experimentação baseada em sua implantação e carga para resolver isso.
Se o seu servidor não iniciar quando você definir max_children como 20, suspeito que algo mais esteja configurado incorretamente. Talvez você tenha algum cache agressivo acontecendo? O que dizem os vários logs quando você define max_children como 10? Não sei por que você precisaria executar mais de 10 threads para começar.
PHP 7.4
MySQL 8