Советую вам попробовать другой конфиг MySQL и/или добавить RAM
Предлагаю попробовать следующий конфиг:
Код |
---|
[mysqld]
# Настройки потоков
thread_cache_size = 128
thread_pool_size = 36
# Кэширование запросов
query_cache_type = 1
query_cache_limit = 24M
# Parameters for temporary tables
tmpdir = /tmp
max_heap_table_size = 1024M
tmp_table_size = 1024M
innodb_strict_mode = OFF
innodb_file_per_table = 1
innodb_buffer_pool_instances = 3
sync_binlog = 0
innodb_flush_log_at_trx_commit = 0
innodb_log_file_size = 512M
binlog_row_image = MINIMAL
innodb_sort_buffer_size = 4194304
# на быстрых дисках можно экспериментировать
innodb_read_io_threads = 32
innodb_write_io_threads = 32
innodb_io_capacity = 1024
innodb_io_capacity_max = 4096
# Размер глобальных буферов
key_buffer_size = 96M
innodb_buffer_pool_size = 3072M
innodb_log_buffer_size = 8M
query_cache_size = 64M
# Размер буфера для одного коннекта
read_buffer_size = 128K
read_rnd_buffer_size = 1M
sort_buffer_size = 4M
thread_stack = 256K
join_buffer_size = 16M
# Ограничения
max_connections = 75
open_files_limit = 64000
table_open_cache = 16384 |
Должен предупредить, что в данном конфиге:
# Parameters for temporary tables
tmpdir = /tmp
я вынес эту папку в оперативную память, в вашем случае может и не следует ее переопределять...
Что бы нормально работала настройка open_files_limit = 64000 нужно еще настройки ОС подкрутить тут:
vi /etc/sysctl.d/sysctl.conf, тут:
vi /etc/security/limits.d/20-nproc.conf, тут:
vi /etc/security/limits.conf и mysql тут
vi /usr/lib/systemd/system/mysqld.service
Но в целом можете пробовать пока убрать вообще open_files_limit = 64000 из конфига.
Не забудьте перезагрузить сервер после изменения конфига.