Хочу поделиться с вами своим неудачным опытом создания вэб-кластера из коробки. В презентациях выглядит все ярко красочно и красиво и производительно и легко масштабируемо. На самом же деле грустно, медленно, и тормознуто.
машины по 4 процессора 2,8Ггц и 4гб оперативки, диски с SSD-кешированием вот думаю мой проэкт будет на них просто летать + кластер, распределение нагрузки, будет просто ЦА-ЦА.
Ну приступим, машины установлены автоматом. на максиплейсе 4,3 на таймвэбе 5,0 1. Обновляем до 5,1 обе, синхронизируем время. 2. Создаём пул на сервере максиплейс - он будет у нас мастером 3. Добавляем сервер таймвэба в пул - он будет у нас слейвом 4. Наливаем из облака бэкап проекта, пока все хорошо, сервер и правда хорош все летает. производительность 60 баллов, перввые 1000 хотов на получили сайт в среднем за 1,2с. (т.е, БЫСТРО согласно измерителя скорости) 5. создаем роли на слейве MySQL и Apatch и все хана.
Тут нас ждут тормоза. Ошибки каждая 2-я страница вместо себя показывает. Показатель обрывов подключений 20% [Bitrix\Main\DB\ConnectionException]
Mysql connect error [master.tiger-gun.ru, 178.63.161.156]: Too many connections (400)
Пишем в поддержку, там ответ отключите хранение сессий в БД, зачем, не объясняется. Отключил.
Теперь станицы грузятся 15-60 сек. Обрывы 4% И постоянно слетает авторизация после каждых 2-3 кликов.
Словом, все глючит и тормозит. На вопрос про отказоустойчивость, если вдруг мастер сервер станет недоступен. Будет ли работать слейв. - ответ НЕТ, т.к. на мастере стоит балансировщик и если он не работает, то НИЧЕГО работать не будет. Какая ж тут отказоустойчивость непонятно. На вопрос, как вообще работает кластер, почему так медленно...по ощущениям создается впечатление что роли Apatch перепутали свои локальные базы, и обращаются с запросами, перекрестно. на что был получен ОТВЕТ: Все операции записи идут всегда на мастер, а чтение, в основном, производится со слейва. Как при этом распределяется нагрузка на апатч непонятно. В реалиях имеем что у 10% пользователей проекта, все летает. у остальных все жутко тормозит.
Подытожим: Вэб-кластер битрикс из коробки не работает!!! Даже переписываясь с тех поддержкой Битрикса 2 недели у Вас все равно не получится все настроить.
Если есть желание помочь, и опровергнуть это мнение с удовольтвием готов выслушить. И ответить на все вопросы, касаемо этой темы.
С чего начать? Снес кластер. При помощи ТП понял что при создании роли memcacher в первый раз, что-то поломалось и кеш вообще нигде не хранился. Починил руками на master хранение кеша в файлах, потом переключил на хранение в мемкешере 'cache' => array ( 'value' => array ( 'type' => 'memcache', 'sid' => $_SERVER["DOCUMENT_ROOT"].'#01', 'memcache' => array ( 'host' => '127.0.0.1', ), ), 'readonly' => false, ),
заново создал кластер. создаю роли... ТП говорит что тормоза были из на неправильных настроек хранения кеша. Попытка №9 в процессе
В вашем случае не правильная архитектура в принципе. Slave и Master сервер должны находится рядом, сессии если не используется балансировка с привязкой пользователей к нодам хранится в БД или в memcached
Nikolay Ryzhonin написал: В вашем случае не правильная архитектура в принципе. Slave и Master сервер должны находится рядом,
если я правильно уловил ход мыслей, то хотели сделать географический кластер, а не просто мастер-слайв. А вот то, что реализация сего совсем по другому делается, тут скорее пиар Битрикса виноват. со своей простотой которая потом выливается в сложности на деле - «Географический веб-кластер» повышает отказоустойчивость проекта и обеспечивает независимость от дата-центра. В различных дата-центрах объединяются несколько групп веб-кластеров, находящихся в разных городах или странах. В случае отказа одного дата-центра, в работу мгновенно включается другой, без необходимости восстановления «бэкапа».Географический веб-кластер позволяет поднимать целые группы серверов. В каждой из этих групп работает свой мастер - в независимых друг от друга датацентрах. Тем самым ваши сайты, ваш бизнес полностью защищены от недоступности самих датацентров.
вот эти слова и были восприняты не совсем корректно и даже куплены сервера под это....
изучил, а с чего начать непонятно. Подготовил 2 сервера с чистыми образами VMbitrix 5.1.1, уровнял Uid пользователя bitrix, обновил PHP и MySQL Создавать пул или нет, на одном или на обоих серверах??? Потом я так понимаю восстановить продукт из резервной копии и все делать уже из web-консоли админки?
И все само заработает, или надо будет? в инструкции написано только про базу, и ничего про Вэб-сервера, если просто добавить его в Вэб-сервера, что он сам все данные перекопирует и будет балансировать нагрузку?
Какие настройки произвести на 2-м мастре? Может есть пошаговое руководство?
если у вас есть синхронизация с 1С и там прилично товаров да еще с картинками то мастер-матер только обменом между собой могут положить канал напрочь и ваши ноды будут в постоянной синхронизации между собой, в результате вы не получите ожидаемой надежности а скорее наоборот. а для балансировки по хорошему нужен еще один сервер, только вот без рук вы это точно не поднимете, тем более через меню или панель.