Alta carga de CPU MariaDB e PHP-FPM

Alta carga de CPU MariaDB e PHP-FPM

temos um servidor dedicado rodando apenas 1 domínio (Wordpress) com 500 usuários por minuto e muitas vezes temos timeouts. Especificações do servidor: CPU Intel (R) Xeon (R) E5-1650 v3 a 3,50 GHz (12 núcleos) 64 GB de RAM 2 SSD de 200 GB Raid 0 SO: Debian 9.6, Plesk Onyx 17.8, MariaDB 10, PHP-FPM 7.2

Acabamos de ajustar algumas configurações do banco de dados, mas ainda temos intervalos/intervalos. O uso da CPU do MariaDB é de 200%, PHP-FPM 50% da CPU por instância Alguém pode ajudar?

Aqui está o my.cnf
key_buffer_size = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
myisam_recover_options = BACKUP
max_connections = 200
#table_cache = 64
#thread_concurrency = 10

#query_cache_limit = 1M
#query_cache_size = 16M
skip-name-resolve = 1
table_cache = 8192
table_definition_cache = 8192
table_open_cache = 16384
sort_buffer_size = 16M
query_cache_limit = 24M
query_cache_size = 256M
join_buffer_size = 10M
= 512M
max_heap_table_size = 512M
innodb_buffer_pool_size = 24G
innodb_buffer_pool_instances = 8
innodb_flush_method = O_DSYNC
innodb_flush_log_at_trx_commit = 0
innodb_lru_scan_profundidade = 256

Responder1

Algumas de suas opções de ajuste são perigosas. A maioria é terrivelmente contraproducente. Deixe o seguinte e remova o resto:

innodb_buffer_pool_size=24G
skip_name_resolve=1

Então defina:

slow_log=1
long_query_time=0

Capture algumas horas de log lento e coloque-o em mysqldumpslow ou pt-query-digest, e corrija as consultas que estão consumindo a maior parte de sua CPU, através de uma melhor indexação ou religando-as com mais eficiência.

Responder2

Para uma análise mais detalhada, consulte: http://mysql.rjweb.org/doc.php/mysql_análise#tuning

Imediatamente: query_cache_size = 256Mé muito alto, levando à atividade da CPU para mantê-la limpa. Emmaioriacasos, é melhor desligar o cache de consulta.

WordPress? Aqui vai outra dica, mas envolve trocar de mesa aí: http://mysql.rjweb.org/doc.php/index_cookbook_mysql#speeding_up_wp_postmeta

Minhas sugestões sobre a configuração do slowlog:

log_output = FILE
slow_query_log = ON
slow_query_log_file = (fullpath to some file)
long_query_time = 1
log_slow_admin_statements = ON
log_queries_not_using_indexes = OFF

http://mysql.rjweb.org/doc.php/mysql_análise#slow_queries_and_slowlog

informação relacionada