SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 13.10.2011 16:29:53

vova-c
Участник
Зарегистрирован: 26.09.2011
Сообщений: 18

Поможет ли мне кластер

Имеем: десяток интернет магазинов на одном физическом сервере. Mysql 5.1,  MyISAM (условно - движок CMS) - 5000 таблиц на 4Гб, innodb (прайс-листы) - 30 Гб (сотни тысяч строк в таблице). Несколько раз в день прайс-листы могут обновляться. Посещаемость - 100 тыс в день. Периодически mysql начинает тормозить, копится очередь. Оптимизация движка CMS и настроек mysql периодически происходит, но стоит вопрос об изменении архитектуры. Расматриваем создание кластера, но почитав http://www.linuxshare.ru/docs/mysql/nocluster.html появилась куча опасений, что кластер нам не подойдет по ограничениям.
Прошу советов в какую сторону копать: кластер, репликация, оптимизация, Postgres smile ?

Неактивен

 

#2 13.10.2011 22:06:07

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: Поможет ли мне кластер

Посещаемость - 100 тыс в день.

Уникальных посетителей ?

В общем ваш вопрос, как вопрос "Как быть здоровым ?" :-)
Способов как улучшить здоровье очень много, особо если знаешь что болит :-)

* Если у вас страницы не особо динамичны, то я бы начинал не с базы, а сначала попытался бы усилить кеш, во всех возможных местах.

* Поищите узкие места.
Начните с того же mysql_slow_log-a, посмотрите что больше всего напрягает базу.

Периодически mysql начинает тормозить, копится очередь.

А что происходит в этот момент ? Может заблокированные таблицы MyISAM ?

Проверьте что происходит с памятью.

Отредактированно evgeny (13.10.2011 22:07:42)

Неактивен

 

#3 14.10.2011 12:18:55

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Поможет ли мне кластер

А по каким соображениям выбрали именно InnoDB для хранения прайс-листов?

Неактивен

 

#4 15.10.2011 13:04:27

vova-c
Участник
Зарегистрирован: 26.09.2011
Сообщений: 18

Re: Поможет ли мне кластер

1. 100 тыс. это те что доходят до php, уникальные они или нет php и mysql по барабану smile. повторяющихся http запросов не более 15%. Каждая php страница генерит от 10 запросов к базе, но см. п.2.
2. Оптимизация была, есть и будет идти параллельно. Даже с оптимизацией с условиях роста столкнемся с проблемами. Сейчас пытаемся внедрять memcache. Вопрос не в этом.
3. Много сложных join, особенно в админке. Многие клиенты постоянно сидят в админке (рабочее место оператора).
3. Блокировки бывают не всегда, эту очевидность легко определить. Именно растет очередь, об этом я спрашивал и приводил примеры тут: http://sqlinfo.ru/forum/viewtopic.php?id=4750  но ответа там не получил. Упирается в диск, судя по всему. iostat показывает в моменты затыков wait 10, но, думаю это не очень много.
4. Если скажете как следить за памятью во FreeBSD буду благодарен. (Учитывая, что в современных системах память виртуальная и top совсем не показатель в этом плане).
5. InnoDB для прайсов, потому что они по паре гиг, обновление одного прайса может идти полчаса. Что будет с MyISAM в эти полчаса, думаю, сами понимаете. Прайсы обновляются частями - апдейтами. Создавать новую временную таблицу с прайсом, строить для нее индексы и потом переименовать займет в разы больше времени (и, следовательно ресурсов системы).

Возвращаясь к нашим баранам. Какие можете посоветовать направления увеличения вычислительной мощности кроме апгрейда железа одного сервера?
Я вижу простой способ: репликация мастер-мастер, селекты через рандом в php идут к разным сервакам, либо к доступному (если один лежит)
И сложный, но интересный и "модный" - создать свое облако из нескольких серваков и при необходимости просто добавлять в него новый сервак. Но информации по созданию своих облачных систем очень мало, и непонятно, опять же, как поведет себя mysql в этой среде.
Кластер, по своим ограничениям прироста производительности нам не даст, судя по всему, скорее наоборот.

Неактивен

 

#5 15.10.2011 14:31:29

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: Поможет ли мне кластер

Главные страницы интернет магазина и страницы товаров обычно не динамичны
Попробуйте кешировать их, если не полностью то хотя бы по блочно.

Оптимизация была, есть и будет идти параллельно. Даже с оптимизацией с условиях роста столкнемся с проблемами. Сейчас пытаемся внедрять memcache. Вопрос не в этом.

Да, про это я и имел виду.

Много сложных join, особенно в админке. Многие клиенты постоянно сидят в админке (рабочее место оператора).

Отлично, идеальная ситуация для репликации мастер-слейв, где админка сидит на слейве.

Если скажете как следить за памятью во FreeBSD буду благодарен. (Учитывая, что в современных системах память виртуальная и top совсем не показатель в этом плане).

Я имел виду проверить, если нету swap-а.

InnoDB для прайсов, потому что они по паре гиг, обновление одного прайса может идти полчаса.

InnoDB это правильно, а вот полчаса это слишком, скорее всего у вас там что то явно не оптимально построено.

репликация мастер-мастер

Зачем ? Чем мастер-слейв не подходит ?

Отредактированно evgeny (15.10.2011 14:33:42)

Неактивен

 

#6 15.10.2011 18:37:35

vova-c
Участник
Зарегистрирован: 26.09.2011
Сообщений: 18

Re: Поможет ли мне кластер

В ситуации мастер-слейв если мастер упадет, то слейв обновления ему уже не пришлет (как я понимаю) и мастер не узнает, что в его отсутствие было что-то изменено.

PS: ОЗУ 24Гб, свап еле -еле вырастает до гига smile, но в моменты затыков он не увеличивается.

Отредактированно vova-c (15.10.2011 18:40:58)

Неактивен

 

#7 16.10.2011 02:35:07

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Поможет ли мне кластер

Полчаса - действительно многовато. За это время два гигабайта можно десять раз записать smile

Прям интересно посмотреть, что за запросы эти на полчаса. Можете привести какой-нибудь для примера? (дело и не в них, но интересно)

Кстати. InnoDB медленно перестраивает индексы (в отличие от MyISAM), может быть, дело в этом.

Неактивен

 

#8 16.10.2011 11:41:27

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: Поможет ли мне кластер

В ситуации мастер-слейв если мастер упадет, то слейв обновления ему уже не пришлет (как я понимаю) и мастер не узнает, что в его отсутствие было что-то изменено.

Ну это не связано с мастер-мастер. Это связанно с механизмом который в случае падения, будет весь трафик перенаправлять на рабочий DB. То есть также с мастер-слейв, в случае падения мастера, слейв просто превращается в мастер.

Неактивен

 

#9 16.10.2011 20:02:04

vova-c
Участник
Зарегистрирован: 26.09.2011
Сообщений: 18

Re: Поможет ли мне кластер

Насчет полчаса. Не забывайте, что сервер рабочий, постоянная нагрузка, винты SATA. Не хотелось бы тут в оптимизацию вдаваться. Интересуют варианты масштабирования.

Пока что мои мысли сводятся к документу (название файла говорит само за себя, можно не читать smile ):
http://www.percona.com/files/presentati … 08-Rus.pdf

Почему то не нахожу подтверждений, чтобы кластер и облако использовались для Mysql в крупных проектах.

Неактивен

 

#10 17.10.2011 02:36:25

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Поможет ли мне кластер

Кластер используется в крупных проектах, но ограниченно (в России примеров не назову). Причина в том, что синхронная репликация, реализованная в нем, обходится достаточно дорого - чтобы сохранить исходную производительность, добавив надежность, желательно более трех машин (иногда существенно больше). Шардинг используется достаточно широко (информации мало, так как пока нет общепринятых решений - в каждом случае своя реализация, общие только подходы).

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson