Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Народ всем привет, столкнулся вот с такой проблемой, есть большие базы и тяжелые запросы, на мастере все выполняется, на реплике также все выполняется, НО только тогда когда выключена репликация, как только ее включаем получаем при выполнении тех же запросов на реплике :
[nativecode=2006 ** MySQL server has gone away]
и все т.е. почему-то реплика отваливается, реплика в read only, каким образом репликация так пагубно влияет и как этого можно избежать?
Спасибо!
Неактивен
Варианта два — плохой и еще хуже. Плохой — это если Ваш клиент не дожидается
ответа. Например, если он выполняет запрос, но ставит некоторый таймаут на его
выполнение. Со включенной репликой база отвечает медленнее, и в таймаут Вы
не укладываетесь. Если у клиента есть настройка, регулирующая таймауты, эта
проблема лечится легко.
Вариант еще хуже — если физически падает процесс MySQL. В этом случае я бы на-
чал смотреть с потребления памяти, а потом уже стал бы искать ошибки в ПО.
Неактивен
ну таймауты вроде задраны выше некуда, серверы вроде одинаковые практически по железу, запросы выполняются из веба также одинаково, настройки у реплики одинаковы по параметрам потреблению памяти, своп вообще не используется, т.е. на первый взгляд вроде все должно отрабатывать, т.к. выполняли запросы когда мастер практически простаивал. Может как-то возможно изолировать процесс репликации, звучит конечно не правильно, но все же, чтобы он не сильно влиял на сервер
Отредактированно studz (21.12.2010 12:02:17)
Неактивен
Таймауты задраны выше некуда, но это они или нет?
Неактивен
Дело в том что когда водятся изменения на слейве то меняются индексы и реплика отваливается
Неактивен
Насколько я понимаю, реплика тут не отваливается
Неактивен
[nativecode=2006 ** MySQL server has gone away]
и все т.е. почему-то реплика отваливается -------- а это про что речь тогда шла?
Неактивен
Отваливается от клиента?
Неактивен
Да все верно вы поняли, клиент отваливается от выполнения запроса мускулем на сервере с репликой, а реплика в это время работает, с мастера все запросы выполняются, вот параметры, которые были увеличены, в остальном они почти идентичны как на мастере так и на реплике:
wait_timeout=58800
interactive_timeout = 58800
innodb_lock_wait_timeout = 900
php.ini
default_socket_timeout = 6000
setting connect_timeout = 6000
mysql.connect_timeout = 9600
Причем, реплика при запросах не сильно то и напрягается по нагрузке. Странно, т.к. как только делаешь stop slave; на ней, все начинает бегать и выполняться с этого сервера довольно быстро.
По поводу ваших 2 вариантов) Плохого и еще хуже
Как бы это отдебажить? 1 -ый наверное не подходит, т.к. из веба также запросы выполняются как на него (с остановленной репликой) так и на мастере.
"Со включенной репликой база отвечает медленнее" а почему это интересно? Т.к. в этот момент запросы на мастер практически не шли, и тем более инсерты.
" Если у клиента есть настройка, регулирующая таймауты, эта
проблема лечится легко." попробовали в php.ini увеличить execution_time=300 , но это не помогло
Вариант еще хуже — если физически падает процесс MySQL. В этом случае я бы на-
чал смотреть с потребления памяти, а потом уже стал бы искать ошибки в ПО.
С памятью все в порядке, как и с состоянием сервера, конечно я на 100% не уверен что сам процесс упал, не могу утверждать, но судя по состоянию сервера это вряд-ли, да и он же не перезапускается если падает?
Отредактированно studz (28.12.2010 12:45:02)
Неактивен
Просто зайдите на сервер клиентом mysql и выполните \s. В выводе статистики
будет строка Uptime, в которой будет написано, сколько времени работает сервер.
Неактивен
Дебажим дальше))) из консоли все запросы выполняются нормально, значит дело в клиенте php, народ может кто сталкивался с таким? что может быть не так?
Может еще есть какие-то таймауты помимо этих?
wait_timeout=58800
interactive_timeout = 58800
innodb_lock_wait_timeout = 900
php.ini
default_socket_timeout = 6000
setting connect_timeout = 6000
mysql.connect_timeout = 9600
Неактивен
А параметры точно не меняются внутри приложения?
Неактивен
Страниц: 1