LINUX.ORG.RU
решено ФорумAdmin

mysql slave - лагает при нулевой нагрузке на проц/диск/память


0

2

Поднимаю репликацию в mysql.

Заметил странную ситуацию, когда репликация начинает отставать (иногда на часы) от мастера. Сейчас вот прямо сижу и мониторю.

Нагрузка на slave нулевая, mysqld в top почти не видно. Пишет на диск 200-300кб/с. По сети гонит примерно столько же.

Но репликация конкретно отстает.

Мониторю репликацию с помощью своего скрипта, раз в секунду пишущего в специальную таблицу timestamp.

Вначале грешил на большой лаг между мастером и слейвом (они географически сильно разнесены), но сейчас посмотрел tcpdump'ом что приходит на слейв и оказалось, что на слейв все приходит практически синхронно, а вот применяется с большим отставанием.

Откуда берется отставание - не очень понятно. Никаких тяжелых запросов там нету (нагрузка - практически ноль, повторюсь).

Куда можно покопать?

★★★★★

Ответ на: комментарий от true_admin

Кажись, нашел.

Вроде упиралось-таки в io, но не в поток, а в количество транзакций. На мастере стоят SSD, а на слейве обычные диски. Количество транзакций в секунду было 50-150, видимо, это его и подкосило.

Включил на слейве:

delay_key_write = ALL innodb_flush_log_at_trx_commit = 2

И лаг резко пополз вниз. TPS упал до 50-80.

AngryElf ★★★★★
() автор топика
Ответ на: комментарий от AngryElf

так, извините, при таких косяках всё отлично видно в топе, iostat и прочих статистиках что никак не согласуется «Нагрузка на slave нулевая».

true_admin ★★★★★
()
Ответ на: комментарий от AngryElf

Собственно, я и сейчас не очень понимаю.

На соседнем сервере 200-300 tps на диск, диски в 6-м рейде (12 штук), всего 3000-3500 tps. iowait - около 70%.

А на этом несчастном слейве iowait 10-15%, 150tps и репликация практически умирает.

AngryElf ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.