Хочу поделиться с вами своим неудачным опытом создания вэб-кластера из коробки. В презентациях выглядит все ярко красочно и красиво и производительно и легко масштабируемо. На самом же деле грустно, медленно, и тормознуто.
машины по 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С и там прилично товаров да еще с картинками то мастер-матер только обменом между собой могут положить канал напрочь и ваши ноды будут в постоянной синхронизации между собой, в результате вы не получите ожидаемой надежности а скорее наоборот. а для балансировки по хорошему нужен еще один сервер, только вот без рук вы это точно не поднимете, тем более через меню или панель.
Александр Суворов написал: Создание конфигурации master-master в BitrixVM 5.1.х не поддерживается, только master-slave. Возможно будет добавлено в будущем.
Александр Панишев написал: если у вас есть синхронизация с 1С и там прилично товаров да еще с картинками то мастер-матер только обменом между собой могут положить канал напрочь и ваши ноды будут в постоянной синхронизации между собой, в результате вы не получите ожидаемой надежности а скорее наоборот. а для балансировки по хорошему нужен еще один сервер, только вот без рук вы это точно не поднимете, тем более через меню или панель.
Мы не выгружаем каждые 30 мин каталог полностью, идет обмен только изменениями, в день итого добавляется 0-100 новых позиций или изменений Зачем городить кучу серверов, если в пики нагрузки процессор задействован не более чем на 30%, разве что в моменты резервного копирования или оптимизации базы этот % увеличивается. Уже несколько раз сталкивались с тем что заказываем что-то у сторонних разработчиков, а через пол года битрикс выпускает такой функционал штатно, но делает его заметно лучше и качественней. И потом всегда встаёт вопрос перехода именно на стандартный функционал.
Александр Суворов написал: Создание конфигурации master-master в BitrixVM 5.1.х не поддерживается, только master-slave. Возможно будет добавлено в будущем.
уберите тогда об этом всем упоминания, и не позорьтесь...
я же сказал, что прямой настройки в меню виртмашины мастер-мастер нет. но с помощью только модуля Веб-кластер из админки, без меню виртмашины, репликацию мастер-мастер сделать можно, используя инструкции в модуле. это есть в уроке, который вы приводили выше
Александр Суворов написал: но с помощью только модуля Веб-кластер из админки, без меню виртмашины, репликацию мастер-мастер сделать можно, используя инструкции в модуле. это есть в уроке, который вы приводили выше
я так понимаю только базы... или вэб-сервара и мемкешера тоже?
Накатил бэкап в настройках производительности, на вкладке битрикс хранение кеша: Хранение кеша - cacheenginenone, что это значит? Слышал что в 5.1.1 включен OpCache, инишка есть, как включить? что нужно прописать в .settings ?
Севкававторесурс написал: Накатил бэкап в настройках производительности, на вкладке битрикс хранение кеша: Хранение кеша - cacheenginenone, что это значит? Слышал что в 5.1.1 включен OpCache, инишка есть, как включить? что нужно прописать в .settings ?