优化 Bitnami EC2 t3a.medium 实例上 WordPress 的 PHP-FPM 配置

优化 Bitnami EC2 t3a.medium 实例上 WordPress 的 PHP-FPM 配置

我正在使用 Bitnami 在 AWS EC2 t3a.medium (4Gb Ram) 实例上运行 WordPress 网站。服务器的 RAM 经常被完全填满,导致服务器崩溃,我需要从 ec2 控制台重新启动它。

这是正常运行时间监视器: 在此处输入图片描述

在此处输入图片描述

我已经研究过调整我的 php-fpm 设置来缓解这个问题。

当前配置如下:

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

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

内存.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

答案1

对 my.cnf [mysqld] 部分的建议

innodb_max_dirty_pages_pct_lwm=0.001  # to enable pre flushing
innodb_max_dirty_pages_pct=0.001  # to reduce 1,067 dirty pages

请在应用这些全局变量一天后发布 SHOW GLOBAL STATUS LIKE '%dirty%'; 的文本结果。

当我们将脏页控制在缓冲池的 7% 以下时,就有更多机会提高处理速度。请查看我的个人资料。

答案2

这是我在 t3a.nano(512MB RAM)上运行的程序,它运行五个低容量的 Wordpress 网站,以及一些其他软件。t3.medium 的 CPU 比我的 t3.nano 多四倍,RAM 多八倍,因此您可能可以将这些数字乘以四甚至八 - 需要根据您的部署和负载进行实验才能得出这个结果。

如果将 max_children 设置为 20 后服务器仍未启动,我怀疑是其他设置不正确。也许您正在进行一些积极的缓存?将 max_children 设置为 10 后,各种日志会显示什么?我不知道为什么您需要运行超过 10 个线程才能启动。

PHP 7.4

pm.max_children = 3
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 1
pm.max_requests = 50

MySQL 8

innodb_buffer_pool_size=50M
innodb_flush_method=O_DIRECT
innodb_log_buffer_size=1048576
innodb_log_file_size=4194304
innodb_max_undo_log_size=10485760
innodb_sort_buffer_size=64K
innodb_ft_cache_size=1600000
innodb_max_undo_log_size=10485760
max_connections=20
key_buffer_size=1M

thread_stack=140K
thread_cache_size = 2
read_buffer_size=8200
read_rnd_buffer_size=8200
max_heap_table_size=16K
tmp_table_size=128K
temptable_max_ram=2097152
bulk_insert_buffer_size=0
join_buffer_size=128
net_buffer_length=1K

相关内容