Добрый вечер, настраиваю mysql сервер по статьям и столкнулся с неизвестным, статья: http://www.hostcms.ru/documentation/server/mysql/ (Оптимизация MySQL для InnoDB)
Имеем сейчас:
max_connections = 500
wait_timeout = 30
interactive_timeout = 30
key_buffer_size = 1G
max_allowed_packet = 2M
query_cache_type = ON
query_cache_limit = 10M
query_cache_size = 4G
innodb_file_per_table = 1
table_open_cache = 4096
table_definition_cache = 4096
innodb_open_files = 4096
#innodb_buffer_pool_size = 5G // уменьшал с 20 до 5, все равно превышение в итоге отключил
#innodb_buffer_pool_instances = 4
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 128M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 0
innodb_file_io_threads = 8
innodb_stats_on_metadata = 0
tmp_table_size = 1G
max_heap_table_size = 2G
thread_cache_size = 128
Сказано - сделано. Открыл htop взглянуть на потребление памяти и цп, и увидел выделение красным в колонке VIRT, т.е. как я понял - явное превышение. Обладаю выделенным сервером с 32Gb ОЗУ. Как так получилось? Имеется какой-то параметр, который умножает выделяемую память на N?
БД: mysql Ver 15.1 Distrib 10.1.31-MariaDB, for Linux (x86_64) using readline 5.1
Основания для настройки использую анализ mysqltuner.pl, прошу гуру направить меня как верно анализировать и настраивать mysql сервер.
P.S. только учусь, скорее всего везде накосячил где только возможно. Нагрузка на mysql снизилась до 10-20% с конфигом выше.