Андрей Николаев написал: Ладно, вот не очень красивый, но рабочий кусочек (вставлять в dbconn.php в конец перед закрывающем php-тегом:
Андрей Николаев, в любом случае большое спасибо! К сожалению код работает не всегда, каждый 4-5 хит вместе с ошибкой Mysql connect error выдается 200 код, соответственно нет переключения на живой узел кластера - возможно это индивидуальная особенность сайта или кэширования, полагаю разберемся с разработчиками, но если есть идеи поделитесь пожалуйста.
Андрей Николаев,спасибо! Конфигурирую кластер из трех узлов с mariadb galera claster, в master-master. Поскольку скорость insert запросов упала изрядно, а использование haproxy или maxscale добавляет еще несколько мс на каждый запрос решил их не применять, поэтому оптимально генерировать http ошибку, по которой балансир исключит из пула узел у которого нет доступа к БД.
Хотелось бы реализовать такой функционал, при возникновении
Код
[Bitrix\Main\DB\ConnectionException]
Mysql connect error [localhost]: (2002) No such file or directory (400)
....
отдавать клиенту какую либо ошибку http, например 504 вместо 200. В документации нашел, что ранее была возможность обработать событие в /bitrix/php_interface/dbconn_error.php, но на текущем ядре битрикса не работает. Если ли возможность сейчас это реализовать без правки ядра?
OpenVZ это бесплатный урезанный функционально продукт сделанный на основе коммерческого Virtuozzo, теплейты последнего не совместимы с OpenVZ, да и не нужно этого. Для установки BitrixEnv достаточно создать контейнер с темплейтом centos-6-x86_64-minimal и далее по инструкции.
Цитата
Раиль Агзамов написал: Второй вариант есть, привлечь стороннего знающего спеца для настройки. Опять финансы.
Если Вы планируете осуществлять в дальнейшем поддержку(администрирование) серверов самостоятельно, то лучше изучите все сами. Без понимания как работает Linux, OpenVZ или даже BitrixEnv любая проблема будет кошмаром. Или можно так поступить - пробуйте вычислить потенциальные убытки при часовом простое и суточном по всем контролируемым вами сайтам. Полагаю после сего, будет понятно на какие затраты вы готовы пойти для конфигурирования серверов и их дальнейшей поддержке, чтобы минимизировать риск недоступности сайтов.
Раиль Агзамов написал: А есть какие-нибудь грамотные мануалы по развертыванию openVZ.
Раиль, мануалов много, прежде всего https://openvz.org/Category:HOWTO ваши тоже годятся. Другое дело пускать сервер в продуктивную среду - Вы полагаю не намерены решать возможные проблемы в дальнейшем по мануалам? Если да, то многочасовые или многосуточные простои гарантированны. Изучите возможности технологий на отдельном сервере, а потом внедряйте.
Для вашего случая все правильно написали - решите, что вам обойдется дороже, простой сайтов или аренда нового сервера. А чтобы не выбирать в таких случаях пользуетесь системами виртуализации, например OpenVZ, где можно в любой момент сделать снашет виртуального сервера(контейнера для OpenVZ) и откатится к нему в случае если что-то пошло не так. Или просто клонировать виртуальный сервер, обновить клон, все проверить, перенести сайт(ы) и установить ip-адрес от клонируемого сервера - таким образом простой составит несколько секунд.
Где скачать веб-окружение c поддержкой RED HAT 6.x, Подскажите возможно ли где-то скачать скрипт sh для развертывания веб окружения, который бы поддерживал REDHAT 6.8
Андрей Николаев написал: Подумываю собрать полный аналог VMBitrix 7.0.0
Цитата
overpod1 написал: Коллеги кому интересен такой проект ??? Отзовитесь ???
Наверное сначала стоит себе и коллегам объяснить зачем это нужно вообще. По мне так это звучит как докер ради докера, без какой либо практической пользы.
Андрей написал: То есть даже если организовать через сокет, это будет медленнее чем файловый вариант? Не совсем понятно почему?
Потому, что обращение к файлу посредством функции ядра ОС требует меньше ресурсов, чем обращение к сторонней службе, в которой к тому же будут произведены дополнительные вычисления.
Цитата
Андрей написал: Рекомендации Битрикса "В случае, если используется один сервер, то для улучшения производительности можно настроить работу с memcache через соке
Почему это написали в битрикс - я не знаю, полагаю, что есть этому разумное объяснение.
Повторюсь, при наличии свободной памяти, ОС наиболее оптимально распределит ее, в том числе для файлового кеша в зависимости от потребностей всех запущенных процессов. Для memcached вы всегда указываете размер выделяемой памяти. Простой сценарий: в системе 16Гб памяти, при штатной нагрузке, для процессов веб-сервера и БД выделено 8Гб, 7,5Гб на файловый кеш, на сайт приходит масса ботов, т.е. нагрузка повышается - процессы веб-сервера и БД увеличивают потребление памяти, из файлового кеша в памяти вытесняются самые старые файлы - память высвобождается для процессов, что очевидно важнее чем кеш. В случае использования для кэширования memcaсhed, память в приведенном примере может попросту закончится, процессы будут вытеснятся в своп, если он есть или сработает OOM Killer, пользователи получат 504 или вообще не будут получать ответа.
Андрей, memcached нужен прежде всего для организации общего кеша для нескольких нод кластера, локально он бесполезен, поскольку доступа к данным в memcahed осуществляется по сети - такие операции всегда "дороже" чем прямое обращение к файлу. Конечно существует вероятность, что вашему проекту на битриксе нужен кеш в объеме 20Гб с постоянным быстрым доступом к оному, но если это действительно так, то это скорее всего последствия ошибок разработчиков вашего сайта.
Файловый кеш, при наличии свободной памяти самый быстрый - ОС по возможности будет держать последние открытые файлы в памяти. Посмотрите сколько оной отдано под файловый кеш командой
Попробуйте массово временно отключить всех агентов выполняемых на хитах, а также временно отключить /home/bitrix/www/bitrix/php_interface/init.php переименовав его в например init.php_ если после этого производительность станет нормальной - обратитесь к разработчику сайта.
Похоже, что у вас подключен модуль php - xdebug, посмотрите в /etc/php.d на предмет наличия файла *-xdebug.ini с содержимым zend_extension=xdebug.so, если таковой есть, то переименуйте его в *-xdebug.ini.disabled и выполните:
Если вы арендовали "железный" сервер, проведите полное тестирование "железа" и предъявляете претензии владельцу по результатам(ну или сразу). Если это vps/vds тоже к хостеру - проблема точно за рамками BitrixEnv.
Полагаю еще чего-нибудь есть в /var/log/messages в плюс-минус 5 минут когда был запущен процесс mysql. Сие похоже на поврежденные файлы БД, попробуйте создать новый дамп, дропнуть базу, создать новую и залить свежий дамп. Ну и посмотреть в /var/log/messages на предмет угроз
Алексей написал: Заказываем на Хетцнере виртуальный сервер, но там CentOS только 6.8 или 7.2, а на сайте в рекомендациях к web-окружению рекомендуют 6-ю.
Так Centos 6.8 и есть "6й" и единственный Centos а который можно установить BitrixEnv