У нас есть база данных размером около 100 ГБ. Однако большая часть этих 100 ГБ - это «архивные» данные, к которым мы редко получаем доступ - около 25 ГБ - это активные данные. У нас есть innodb_buffer_pool_size
установлен на 48G, что обычно достаточно. Однако каждый день cPanel запускает резервную копию, которая включает mysqldump
всех наших данных - и это заполняет пул буферов данными, тратя впустую оперативную память, которую можно было бы использовать для чего-то другого.
Я читал об использовании innodb_old_blocks_pct
и innodb_old_blocks_time
в https://dev.mysql.com/doc/refman/5.7/en/innodb-performance-midpoint_insertion.html чтобы помочь решить эту проблему. Мои вопросы:
(что innodb_old_blocks_pct
и innodb_old_blocks_time
настройки рекомендуют бороться с этим?
(б) Какие-либо другие стратегии решения этой проблемы?
Если использование физической памяти более важно, чем производительность в течение нескольких минут после резервного копирования, вы можете уменьшить innodb_buffer_pool_size примерно до 25 ГБ.
Если на производительность влияет резервное копирование, и это проблема, которую вы пытаетесь решить, вы можете использовать другой экземпляр mysql с меньшим объемом памяти в качестве ведомого MySQL и запустить резервное копирование на ведомом устройстве.