Очень высокая загрузка ЦП Низкое или среднее использование ОЗУ на VPS (mysql более 100% ЦП)

Я нахожусь на сервере VPS Virtuozzo с:
8 ГБ ОЗУ
6 CPU
Жесткий диск SSD
Debian 8.8
PHP 5.6.30
MySQL 5.5.55

Обслуживается только один веб-сайт.
Это WordPress с поддержкой SSL, веб-сайт, содержащий около 22000 статей.
Он получает средний трафик, около 8 тыс. Пользователей, 18 тыс. Просмотров страниц в день.
Из-за особенностей веб-сайта мы получаем много плохих запросов от роботов и попыток взлома. fail2ban настроен и хорошо отчитывается.

top -i иногда сообщает mysql CPU% как 200.

Virtuozzo сообщает
Использование ЦП 99,9%
Средняя загрузка ЦП 7,13, 7,42, 6,97
Память 42%

В результате в какой-то момент apache останавливается и перезапускается.

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/

Журнал медленных запросов не сообщает о медленных запросах.

(файл my.cnf, настроенный сервером Я нанял эксперта по администрированию, потому что я не являюсь одним из них)

Неправильно сконфигурирован MySQL?

ОБНОВЛЕНИЕ: Я попытался отключить все плагины и применил базовую тему. Нет конкретного плагина, вызывающего это. Само собой разумеется, что загрузка процессора была ниже, но и нагрузка на оперативную память тоже была меньше. Кстати, если нет плагинов и у нас применена базовая тема, то вовлечение пользователей не будет таким большим. Мы не можем достичь 200 пользователей в минуту с базовой настройкой, чтобы правильно отлаживать ...

1
задан 10 May 2017 в 07:35
1 ответ

Как вы сказали, вы используете word-press, проверьте наличие плохих плагинов, так как некоторые плагины могут быть скомпрометированы, проверьте это, отключив плагины один за другим

Я вижу innodb_buffer_pool_size = 5G по-прежнему используется память на 42% из 8 ГБ, должно быть больше, чем, перезапустили ли вы службу mysql после изменения настроек my.cnf, причина изменения эффекта только после перезапуска, в основном для innodb_buffer

проверка времени ожидания для ресурсов, использующих верхняя команда проверьте для wa , если есть какое-то значение, это означает, что есть некоторые проблемы с ресурсами, такими как hdd или ram, возможно, ваш ssd или ram имеет проблемы с медленным чтением-записью

дополнительно вы можете использовать Мастер настройки Percona для настройки my.cnf в соответствии с конфигурацией вашего сервера

0
ответ дан 4 December 2019 в 04:56

Теги

Похожие вопросы