Я нахожусь на сервере VPS Virtuozzo с:
8 ГБ оперативной памяти
6 ЦП
SSD жесткий диск
Debian 8.8
PHP 5.6.30
MySQL 5.5.55
Обслуживается только один веб-сайт.
Это WordPress с SSL-поддержкой веб-сайта с около 22000 статей.
Он получает средний трафик, около 8 тыс. Пользователей, 18 тыс. Просмотров страниц в день.
Из-за особенностей веб-сайта мы получаем много плохих запросов от роботов и попыток взлома. fail2ban настроен и хорошо сообщает.
top -i иногда сообщает CPU% mysql как 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 = 5 ГБ тем не менее, ваше использование памяти составляет 42% от использования 8 ГБ должно быть больше, чем, перезапустили ли вы службу mysql после изменения настройки my.cnf, вызывая эффект изменения только после перезапуска, в основном для innodb_buffer
проверить время ожидания ресурсов с помощью верхней команды проверить для ва если есть какое-то значение, это означает, что есть проблема с такими ресурсами, как hdd или ram, возможно, ваш ssd или ram имеет проблемы с медленным чтением-записью
дополнительно вы можете использовать Мастер настройки Percona чтобы настроить my.cnf в соответствии с конфигурацией вашего сервера