Я нахожусь на сервере 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 пользователей в минуту с базовой настройкой, чтобы правильно отлаживать ...
Как вы сказали, вы используете word-press, проверьте наличие плохих плагинов, так как некоторые плагины могут быть скомпрометированы, проверьте это, отключив плагины один за другим
Я вижу innodb_buffer_pool_size = 5G по-прежнему используется память на 42% из 8 ГБ, должно быть больше, чем, перезапустили ли вы службу mysql после изменения настроек my.cnf, причина изменения эффекта только после перезапуска, в основном для innodb_buffer
проверка времени ожидания для ресурсов, использующих верхняя команда проверьте для wa , если есть какое-то значение, это означает, что есть некоторые проблемы с ресурсами, такими как hdd или ram, возможно, ваш ssd или ram имеет проблемы с медленным чтением-записью
дополнительно вы можете использовать Мастер настройки Percona для настройки my.cnf в соответствии с конфигурацией вашего сервера