MYSQL consome toda a CPU - WooCommerce

1

Temos uma loja com o WordPress + WooCommerce.

Nosso servidor tem 24CPUs e 128GB de RAM. Alguns dias tivemos vários pedidos ao mesmo tempo e a CPU estava totalmente sobrecarregada e o site ficou inativo por um longo tempo.

Estamos usando o MariaDB 10.2

Alguém tem experiência se isso é normal ou algo está errado?

Aqui está a parte relevante do meu arquivo de configuração:

#
# * Fine Tuning
#
max_connections         = 500
connect_timeout         = 5
wait_timeout            = 600
max_allowed_packet      = 16M
thread_cache_size       = 128
sort_buffer_size        = 4M
bulk_insert_buffer_size = 16M
tmp_table_size          = 32M
max_heap_table_size     = 32M

#
# * MyISAM
#
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched. On error, make copy and try a repair.
myisam_recover_options = BACKUP
key_buffer_size         = 128M
#open-files-limit       = 2000
table_open_cache        = 400
myisam_sort_buffer_size = 512M
concurrent_insert       = 2
read_buffer_size        = 2M
read_rnd_buffer_size    = 1M

#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
default_storage_engine  = InnoDB
# you can't just change log file size, requires special procedure
#innodb_log_file_size   = 50M
innodb_buffer_pool_size = 256M
innodb_log_buffer_size  = 8M
innodb_file_per_table   = 1
innodb_open_files       = 400
innodb_io_capacity      = 400
innodb_flush_method     = O_DIRECT
    
por sascha 05.04.2018 / 08:55

2 respostas

2

Suponho que você tenha muito disco de E / S devido aos valores muito pequenos de key_buffer_size e innodb_buffer_pool_size . Não há recomendações exatas sobre como ajustá-las, mas você deve observar o seguinte:

key_buffer_size deve ser maior que a quantidade total de índices MYISAM para ajustá-los a todos na RAM.

innodb_buffer_pool_size é bom ser 1.4 * tão grande quanto todas as suas tabelas INNODB, se a RAM estiver disponível.

Você precisa ter muito cuidado ao ajustar os valores join_buffer_size e sort_buffer_size (e outros como read_buffer_size e read_rnd_buffer_size, pilha de linha) porque eles são usados para cada conexão e para um máximo de 500 conexões simultâneas você pode facilmente exceder RAM disponível.

De qualquer forma, você deve iniciar o mysqltuner primeiro e inspecionar minuciosamente cada linha do relatório antes de ajustá-lo. Tenha em mente que as recomendações dadas por mysqltuner são gerais e podem ser inadequadas para o seu caso específico.

    
por 05.04.2018 / 14:31
0

Sugestões a considerar para a sua seção my.cnf-ini [mysqld] (mesmo com apenas uma parte do seu my.cnf-ini visível no momento.

read_buffer_size=128K  # from 2M to minimize read data requirements 

read_rnd_buffer_size=256M  # from 1M  to minimize read data requirements 

thread_cache_size=100  # from 128  for V8 suggested CAP to avoid Out Of Memory 

outras oportunidades tornar-se-ão aparentes com dados de informações solicitadas disponíveis para análise.

    
por 10.04.2018 / 19:52

Tags