Масштабирование сайта на два сервера

12
M2
На сайте с 11.01.2011
Offline
342
2140

Всем добрый день!

Решил масштабировать один из сайтов (на медиавики), и вынес базу данных на отдельный впс. Всё настроил, всё работает по удаленке, НО: сайт стал значительно медленнее грузиться, чем когда БД была на локалке. Оно понятно с одной стороны - время на соединение с сервером, время ответа и т.д. Но неужели это ожидаемо и так будет несмотря на оптимизации? Сервер БД находится на SSD, памяти гиг, диска 10 гиг... вроде бы достаточно, по крайней мере по htop ничего за пределы не выходит... дело тут именно в соединении.

Может постоянное соединение можно включить? или какой-то кеш задействовать?

пробовал $wgMainCacheType = CACHE_DB - вообще не помогает, как было - так и есть.

Основной сервер с cms во Франции, БД - в России (Москва). Вроде бы связность должна быть хорошая, но....

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

Всем спасибо!

------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
Оптимизайка
На сайте с 11.03.2012
Offline
396
#1

мож лучше оставить БД рядом с вебсервером, использовать две штуки, и сделать между ними репликацию?

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
M2
На сайте с 11.01.2011
Offline
342
#2

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

Оптимизайка
На сайте с 11.03.2012
Offline
396
#3
mark2011:
Оптимизайка, а что это даст по производительности?

Это будет быстрее работать, т.к. данные MySQL по сети каждый раз гонять не придется, только изменения.

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

Ну да.

Mik Foxi
На сайте с 02.03.2011
Offline
1076
#4

Жесть ) Во первых 2 вдс это не оптимизация, если у вас еще не выделенный сервер - то надо просто 1 вдс, но с двойными ресурсами. Просто увеличивайте мощности 1 вдс, потом перейдете на выделенный сервер. И когда мощности одного мощного выделенного сервера не будет хватать, то тогда уже думайте о двух физических серверах.

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

Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ + партнерка, до 40$ с продажи.
D
На сайте с 28.06.2008
Offline
1101
#5

У меня пинг от впс сайтов до впс баз 0,5 мсек, но они в одном датацентре. Когда я обновлял мусккль и взял на время впс в другом городе германии, пинг был уже 3 мс. Вы бы еще в сша взяли )))

WebHost1
На сайте с 21.01.2011
Offline
69
#6
mark2011:
Всем добрый день!

Основной сервер с cms во Франции, БД - в России (Москва). Вроде бы связность должна быть хорошая, но....

Почему вы выбрали именно такой вариант, а не один выделенный сервер?

Служба поддержки WebHost1.ru VDS/VPS (https://webhost1.ru/vps-vds) на SSD от 420 руб/мес Выделенный сервер (https://webhost1.ru/server) без забот от 8925 руб/мес
tmatm
На сайте с 22.04.2006
Offline
205
#7

Во-первых не факт, что VPS в Москве работает также быстро, как VPS во Франции. Возможно, там слабый процессор, куча соседей нагружающих сервер, и т.п.

Во-вторых, как писали выше, 2 VPS в разных ДЦ вряд ли будут работать быстрее одного VPS с двойной мощностью. Если же во Франции у вас выделенный сервер, то тогда вообще неудивительно, что VPS работает медленнее выделенного сервера.

Optimizator.Ru ( https://optimizator.ru/ ) — регистрация и продление доменов в RU-CENTER и REG.RU: RU, РФ от 123 р.; MSK.RU, SPB.RU и др. 168 р. + REG.RU ( https://reg.optimizator.ru/ ). Освобождающиеся домены от 150 р. ( https://optimizator.ru/backorder/ )
Евгений Крупченко
На сайте с 27.09.2003
Offline
178
#8
mark2011:

Может постоянное соединение можно включить? или какой-то кеш задействовать?

да - поставить локальный mysql и работать с ним 🙄

а если так уж хочется, с него делайте репликацию на vps хоть в зимбабве

постоянное соединение в теории включается заменой mysql_connect() на mysql_pconnect().

а на практике - телепатов нет, кто знает как у вас там что работает.

если php7, то mysql_connect там в принципе уже нет.

может вы думаете, что скрипты ваши отправили один запрос и получили ответ... но нет.

их наверняка там сотня. и каждый раз подключение, авторизация и т.д.

также сталкивался с подобным. mysql была на другом сервере в другом дц, но в том же городе. пинг стремился к нулю. железо +/- одинаковое (не vps, а свои сервера).

но все равно разница в конечной скорости генерации страниц была очень заметна невооруженным взглядом.

будет проще если поведаете о конечной цели этого разделения.

обычно для начала разделяют статику и динамику. а mysql если и выносить, то только на сервер, который чуть выше в стойке стоит :) и соединять их желательно без свича, а напрямую и оптикой.

kxk
На сайте с 30.01.2005
Offline
970
kxk
#9

mark2011, Тут все лялякают, но никто не вник в Вашу проблему, поставьте значение кеша CACHE_MEMCACHED – memcached и поднимите на Московском впс мемкеш и тогда скорость вашего сайта заметно вырастет.

Ваш DEVOPS
Евгений Крупченко
На сайте с 27.09.2003
Offline
178
#10

кэшировать что-либо - это не решение проблемы, это костыль.

решение - ускорить выполнение запроса, уменьшить их количество и т.п.

но все это не вяжется с отдалением mysql (читай замедлением).

что если, грубо говоря, размер базы будет больше памяти, отведенной под memcache?

правильно - будут периодические подтормаживания. это еще хуже чем постоянные тормоза.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий