2009-05-20 2 views
0

В настоящее время мы имеем 3 ведомые базы данных,MySQL проблема ведомое базы данных

, но почти всегда есть один из них экстремально медленно, чем другие (может быть через час после основной базы данных)

ли какой-либо один встретил подобную проблему? Что может быть причиной?

ответ

1

Я бы предположил, что какой-то другой процесс работает на том же хосте, что и база данных медленных подчиненных, и это ресурсы для hogging.

Попробуйте запустить «сверху» (или использовать Nagios или кактус или что-то еще), чтобы контролировать производительность системы на трех подчиненных серверах базы данных и посмотреть, есть ли какие-либо тенденции, которые вы можете наблюдать. Использование процессора связано с другим процессом, кроме mysqld, или I/O, постоянно насыщенным, что-то вроде этого.


обновление: Прочитайте следующие две статьи экспертов производительности MySQL Peter Zaitsev:

Автор указывает, что ведомый репликации одного -threaded, а подчиненный выполняет запросы последовательно, а не параллельно, поскольку они re выполняется на сервере. Поэтому, если у вас есть несколько реплицированных запросов, которые очень долго работают, они могут «задержать очередь».

Он предлагает исправить это, чтобы упростить длительные SQL-запросы, чтобы они работали быстрее. Например:

  • Если у вас есть обновление, которое затрагивает миллионы строк, разбить его на несколько обновлений, которые действуют на подмножества строк.

  • Если у вас есть сложные операторы SELECT, включенные в ваши запросы UPDATE или INSERT, отделите SELECT в свой собственный оператор, сгенерируйте набор буквенных значений в коде приложения, а затем запустите UPDATE или INSERT. Конечно, SELECT не будет реплицироваться, ведомый будет видеть только UPDATE/INSERT с литеральными значениями.

  • Если у вас длительное запущенное пакетное задание, это может блокировать выполнение других обновлений на ведомом устройстве. Вы можете поместить некоторые спячки в пакетное задание или даже написать пакетное задание, чтобы проверить отставание репликации с интервалом и спать, если это необходимо.

+0

не так часто, может быть один раз несколько часов ... – omg

+0

Хорошо, так что это спорадически, и серверы чередуются медленно. Остается вопрос: что еще работает на этих серверах, которые могут потреблять ресурсы? –

+0

В базе данных ведомых ничего больше не работает на себе – omg

0

Все ли подчиненные серверы расположены в одном месте? В моем случае один из подчиненных серверов находился в другом месте, и это была сетевая проблема.

+0

не должен быть проблемой сети, потому, что они чередуются медленно. – omg

Смежные вопросы