Назад | Перейти на главную страницу

Как бороться с mysqldump и innodb_buffer_pool_size?

У нас есть база данных размером около 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 и запустить резервное копирование на ведомом устройстве.