Page 1 of 1

сильно затянулся ап до 51

Posted: Tue Mar 11, 2014 6:59 pm
by serge
Сайт с базой примерно 500к галер + 24 слейва, запустил ап на 51... уже часа два жду его завершения, пока дошло только вот до сюда:
Checking indexes rot_gal2tag
Adding index to rot_gal2group

мускул прилег из-за слишком большого числа подключений, увеличили это значение, через какое-то время снова лег... cpu под 100 процентов и прочие прелести... сервер как будто на пределе... при этом не понятно сколько это будет продолжаться... такую большую базу с 50 до 51 еще не обновлял. Что делать, ждать уже до конца или может быть стоит скинуть и есть способ провернуть это менее "болезненно", например?

Re: сильно затянулся ап до 51

Posted: Tue Mar 11, 2014 7:04 pm
by admin
Создает инедкс в большй таблице, при 500к думаю та таблица пару М
При этом база нагружена обычным траффиком и это конечно азмедляет процесс
Сколько это займет времени я не знаю, потому что с моей стороны это 1 запрос в базу аля "создать ключ" а насколько он быстро будет выполнен зависит от базы, сервака, нагрузки и тп.

Можно ждать, можно скинуть и запустить по новой - оно все равно будет пытаться создать этот индекс.

Провернуть безболезненно можно напрмиер скопировав базу куда то где нет нашрузки\трафа, запустить ап, база проапдейтится и уже обновленную базу скопировать на нагруженный сайт.

Re: сильно затянулся ап до 51

Posted: Tue Mar 11, 2014 9:23 pm
by serge
а если скинуть и потом запустить, то все заново придется ждать? или может он просто доделает то, что не успел?

Re: сильно затянулся ап до 51

Posted: Tue Mar 11, 2014 9:26 pm
by admin
Скрипт апдейта делает так

if (индекса нет) {
sql command : создать индекс
}

соответственно ответ на ваш вопрос всецело лежит в области mysql - в каком он состоянии будет так и получится.

Re: сильно затянулся ап до 51

Posted: Wed Mar 12, 2014 4:33 pm
by serge
никак чет ап не осилить... сегодня повторно запустил, часов 6 прошло - результата нет все еще... такой вопрос, если я всех слейвов отключу, проведу ап на мастере и на слейвах поотдельности и потом их подключу, это вариант или нет?

Re: сильно затянулся ап до 51

Posted: Wed Mar 12, 2014 4:40 pm
by admin
Если у вас так же стоит на создании индекса то самый конкретные ответ - надо создать инедкс в таблице rot_gal2group ADD PRIMARY KEY ( `group_id` , `gal_id` )

Как вы понимаете созданием индекса занимается mysql и со скриптом это никак не связано.

Можете создать этот индекс любым удобным вам способом и апдейт пройдет быстро.

Re: сильно затянулся ап до 51

Posted: Wed Mar 12, 2014 4:55 pm
by serge
да, опять стоит на Adding index to rot_gal2group
Админы говорят, что в данный момент кол-во подключений MySQL уже превысило 5000, используется ~20 ГБ RAM при общем объёме 32 ГБ. Рост нагрузки такими темпами вскоре приведёт к исчерпанию ресурсов сервера.

Что характерно, большая часть MySQL-подключений установлена с IP-адресов слейвов этого сайта. Поэтому я и подумал, что если их отключить, то апдейт будет завершен. На счет, любого удобного мне способа - я не очень понимаю. Для меня удобный способ, это запустить строчку апдейта и подождать немного. ;) Все остальное, это уже надо давать поручение админам, но я из вашего ответа даже не совсем четко представляю что попросить их сделать (чтобы поняли что именно требуется и сделали это правильно)

Re: сильно затянулся ап до 51

Posted: Wed Mar 12, 2014 5:07 pm
by admin
Я тоже не знаю как вам понятнее это объяснить
Попросите например админа почитать эту тему
Скирпт тут ничего сделать не может, все делает база
база зависит от админа и в целом 5к коннектов на базу это явно ошибочное решение по моему мнению
я рекомендую вам на время апедйта закрыть вообще все соединения к базе, кроме конкретно соединения которое делает обновление.
Если это теож не ясно - приглашайте сюда админа, будем с ним обсуждать что именно не ясно.

Re: сильно затянулся ап до 51

Posted: Wed Mar 12, 2014 7:21 pm
by serge
в итоге заблокировали внешние подключения к MySQL на уровне фаервола и апдейт прошел за 15 минут :)

Re: сильно затянулся ап до 51

Posted: Wed Mar 12, 2014 7:26 pm
by admin
Отлично, те вопрос в том что запрос тяжелый, а база была сильно нагружена. Те можно было б и просто на ненагруженной базе тоже самое сделать и скопировтаь базу например.