MySQL slave. Отставание. Как сократить?

Два сервера, оба виртуальные:
1. Master. HP Proliant DL560 G8 650GB RAM, 32vCPU. CentOS 7.2.1511 (Core). MySQL community 5.6.29-2.el7. База, примерно 2.3TB. Сетевое подключение - 10Gb/s.
2. Slave. HP Proliant DL560 G8 524Gb RAM, 32vCPU. CentOS 6.6 (Final). MySQL community 5.6.29-2.el6. Сетевое подключение - 10Gb/s
Все диски расположены на SAN-полках (FC 8Gb/s)
Как работает:
1. Клиенты пишут в мастер, а если есть запросы на чтение (преимущественно) - из слейва.
2. В пике, слейв отстаёт почти на 2000 секунд, а то и немногим более.
Какие есть варианты сокращения отставания?
  • Вопрос задан
  • 2109 просмотров
Пригласить эксперта
Ответы на вопрос 4
@MechanID
Админ хостинг провайдера
на слейве какое у вас значение innodb_flush_log_at_trx_commit ? 0 ставили или опасаетесь ?
slave_parallel_workers используете ?
Ответ написан
Комментировать
Livitin
@Livitin Автор вопроса
с 1997 года
Вопрос решили.
1. По совету перлового скрипта по MySQL тюнингу произвели изменения на SLAVE.
2. Отключили двойную проверку записи.
Теперь отставание минимально... Вернее его вообще нет. :)
Ответ написан
MetaAbstract
@MetaAbstract
Архитектор информационных систем и баз данных. Ful
thecoder
@thecoder
Разработчик веб-приложений и сервисов.
Если сократить подробности, репликация идет в один поток, что и является узким местом. Даже если слейв в 10 раз быстрее, это все равно упрется в 1 поток на мастере.

Решить вопрос, полагаю, можно пересмотром архитектуры приложения, не базы. Может быть придумать схему, когда пишущие клиенты будут сразу в несколько хранилищ писать параллельно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы