Высокая загрузка ЦП - помощь mysqltuner (WordPress)
Я только что перенес WordPress блог на новый сервер. Имеет около 120 тысяч сообщений.
Проблема в том, что во время работы mysql происходит сбой, зависание или даже зависание. Одна операция WordPress(без какого-либо плагина) для создания пост-операции потребляет 60-80% процессорного времени. А при выполнении 3-5 операций с базой данных она замораживается. И нет никакого журнала для медленного запроса.
Система: Ubuntu 18.04 с 16 ГБ ОЗУ, 8-ядерным процессором, 120 ГБ диском и MySQL версии 5.7.25
Вот mysqltuner и другие отчеты
- Mysqltuner: - https://pastebin.com/ZNYieJj8
- htop: - https://pastebin.com/43f4b3fK
- top: - https://pastebin.com/rTh1XvUt
- ИННОДБ СТАТУС: - https://pastebin.com/nGrZjHAg
- ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ: https://pastebin.com/K2fgKwEv
и текущий mysql.cnf
[mysqld]
# Skip reverse DNS lookup of clients
skip-name-resolve
default-storage-engine=InnoDB
max_allowed_packet=500M
max_connections = 256
interactive_timeout=7200
wait_timeout=7200
innodb_file_per_table=1
innodb_buffer_pool_size = 8G
innodb_buffer_pool_instances = 4
innodb_log_file_size = 1G
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
innodb_open_files=5000
innodb_io_capacity=2000
innodb_io_capacity_max=4000
innodb_old_blocks_time=2000
open_files_limit=50000
query_cache_type = 1
query_cache_min_res_unit = 1M
query_cache_limit = 1M
query_cache_size = 50M
tmp_table_size= 256M
max_heap_table_size= 256M
#key_buffer_size = 128M
thread_stack = 128K
thread_cache_size = 32
slow-query-log = 1
slow-query-log-file = /var/lib/mysql/mysql-slow.log
long_query_time = 1
Редактировать: Исходные переменные mysql.cnf, которые я вставил выше, имели некоторые неверные / измененные значения, сравнивая их с значениями при генерации отчета mysqltuner. исправлено спасибо @EchoMike444
2 ответа
Rate Per Second = RPS - предложения для вашего раздела my.cnf [mysqld],
innodb_lru_scan_depth=100 # from 1024 to reduce 90% of cpu cycles used for function every SECOND
innodb_io_capacity=3500 # from 2000 to enable higher IOPS on your SSD devices
innodb_flushing_avg_loops=5 # from 30 to reduce innodb_buffer_pool_pages_dirty overhead - count was 3183 in SGStatus
read_buffer_size=256K # from 128K to reduce handler_read_next RPS of 277,134
read_rnd_buffer_size=192K # from 256K to reduce handler_read_rnd_next RPS of 778
Существует гораздо больше возможностей для повышения производительности с помощью глобальных переменных. Отказ от ответственности: я являюсь автором веб-сайта, упомянутого в моем профиле, сетевом профиле, который включает в себя контактную информацию.
"Мета" таблицы в WordPress имеют неэффективную схему. Здесь обсуждаются исправления, необходимые для повышения их эффективности.
Эти исправления не исправят внутреннюю неэффективность схемы EAV (Entity-Attribute-Value), присущей WordPress.