Carga de CPU muito alta Utilização de RAM baixa a média no VPS (mysql com mais de 100% de CPU)

1

Estou em um servidor VPS Virtuozzo com:
8GB RAM
6 CPU Disco Rígido SSD
Debian 8,8
PHP 5.6.30
MySQL 5.5.55

Existe apenas um site que é servido.
É um wordpress com SSL habilitado site com cerca de 22000 artigos.
Ele recebe tráfego médio, cerca de 8 mil usuários e 18 mil exibições de página por dia. Devido à natureza do site, recebemos muitos pedidos de robôs ruins e tentativas de invasão. O fail2ban está configurado e reportando bem.

top -i reportando as vezes mysql CPU% as 200.

Relatórios Virtuozzo
Uso da CPU 99,9% Carga de CPU Média 7.13, 7.42, 6.97
Memória 42%

Como resultado, em algum momento, o apache pára e reinicia.

my.cnf:

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

#bind-address       = 127.0.0.1

key_buffer          = 16M
max_allowed_packet  = 16M
thread_stack        = 192K
thread_cache_size   = 8

myisam-recover         = BACKUP
max_connections        = 100
#table_cache           = 64
#thread_concurrency    = 10

query_cache_limit   = 1M
query_cache_size    = 128M
tmp_table_size      = 256M
max_heap_table_size = 256M
table_open_cache    = 3200

#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1

log_error = /var/log/mysql/error.log

slow_query_log_file = /var/log/mysql/mysql-slow.log
slow_query_log      = 1
#long_query_time = 2
#log_queries_not_using_indexes

#server-id          = 1
#log_bin            = /var/log/mysql/mysql-bin.log
expire_logs_days    = 10
max_binlog_size     = 100M
#binlog_do_db       = include_database_name
#binlog_ignore_db   = include_database_name

innodb_buffer_pool_size = 5G

[mysqldump]
quick
quote-names
max_allowed_packet  = 16M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
key_buffer      = 16M

!includedir /etc/mysql/conf.d/

O log de consultas lentas não está relatando consultas lentas.

(arquivo my.cnf configurado por um especialista em administração de servidores que contratei, porque não sou um)

O MySQL está mal configurado?

UPDATE: Eu tentei desativar todos os plugins e apliquei o tema básico. Não há um plugin específico que cause isso. Escusado será dizer que o uso da CPU foi menor, mas a carga de RAM foi menor também. By the way, se não há plugins e temos o tema básico aplicado não há muito engajamento dos usuários. Não podemos acertar 200 usuários por minuto com configuração básica para podermos depurar corretamente ...

    
por fat_mike 08.05.2017 / 20:20

1 resposta

0

Como você disse, você está usando word-press, verifique se há plugins ruins, pois alguns plug-ins podem ser comprometidos, teste-o desativando os plugins um por um

Eu posso ver innodb_buffer_pool_size = 5G ainda seu uso de memória é 42% do uso de 8GB deve ser mais do que, você reiniciou o serviço mysql depois de alterar a configuração my.cnf causar efeito de alteração somente após a reinicialização principalmente para innodb_buffer

verifique se há tempo de espera pelos recursos usando a verificação de comando superior para wa se houver algum valor, isso significa que há algum problema com recursos como hdd ou ram que podem ser seu ssd ou ram com leitura lenta escrever problemas

você também pode usar o Percona Configuration Wizard para configurar o seu my.cnf de acordo com a configuração do seu servidor

    
por 09.05.2017 / 16:24