Требования к хостингу под Битрикс

1С-Битрикс

Минимальные требования:

  • Возможность установить PHP не ниже 7.2
  • Версия MySql - 5.7 и выше.
  • Возможность выставить директиву php: memory_limit = 512M
  • Возможность выставить директиву php: mbstring.func_overload 2 ( до версии битрикс 18.5)  далее  не требуется.
  • Возможность выставить директиву php: mbstring.internal_encoding UTF-8
  • Возможность включить любой из акселераторов php Zend OPcache или APC
  • "Монитор производительности Битрикс" должен выдавать среднее значение не ниже 30
  • Возможность установить letsencrypt сертификат
  • Свободное пространство на сервере не менее двух кратного размера сайта.

Минимальные системные требования:

  • Процессор не менее 1x2000MHz
  • Жесткий диск SSD
  • Оперативная память не менее 1Gb
  • RAID 1 – использовать 2 диска

Список официально рекомендованных площадок: Shared хостинг, VPS, VDS.
Рекомендованный VPS хостинг для небольших проектов.
Рекомендованный Shared хостинг для небольших проектов. По запросу в сапорт могут разместить сервер в Питере или Германии, дать ssh, есть возможность расширить размер жесткого диска на всех тарифах.

Рекомендованные требования:

  • Возможность установить PHP не ниже 7.4
  • Версия MySql - 5.7 и выше.
  • Возможность выставить директиву php: memory_limit = 4096M
  • Возможность выставить директиву php: mbstring.func_overload 2 (до версии битрикс 18.5 далее не требуется)
  • Возможность выставить директиву php: mbstring.internal_encoding UTF-8
  • Возможность включить акселератор php Zend OPcache
  • "Монитор производительности Битрикс" должен выдавать среднее значение 90-320
  • Возможность установить letsencrypt сертификат
  • Сервер должен проходить официальный тест 1с-Битрикс.
  • Свободное пространство на сервере не менее трех кратного размера сайта.
  • Доступ SSH
  • Рекомендуемая технология Nginx+apache2+PHP-FPM
  • Самая быстрая Nginx+PHP-FPM
  • Рекомендуемое окружение + 1C-Битрикс: Виртуальная машина

Рекомендованные системные требования:

  • Выделенный сервер
  • Жесткие диски RAID1 2 и более дисков
  • Оперативная память 16Gb - 64Bg (все лишнее можно использовать под php mysql sphinx, больше особо смысла нет)
  • Жесткие диски NVMe SSD (в крайнем случае HDD и то рассматривать как хранилище для upload)
  • Процессор 8-9 ой серии

Приоритет более высокочастотный процессор с меньшим количеством ядер, чем больше количество ядер с меньшей частотой. Поскольку некоторые процессы невозможно распараллелить. Рекомендовано максимально быстрый процессор, 8-9 ой серии.
Разница между NVMe SSD и обычным SSD составляет более 30% производительности, в ряде тестов более 700%.
Оперативная память не менее 8Gb желательно от 16Gb и выше, при использование VPS,VDS серверов учитывайте что некоторые виды виртуализации сделаны таким образом что выделяя 512 мегабайт, по факту имеют меньший объем поскольку в эту память входит и поддержка самого контейнера, в таком случае рекомендуется брать тариф на 1 выше минимально подходящего.
RAID 1 – использовать 3 диска (в случае поломки 1 из дисков рейд все еще остается отказоустойчивим) рекомендовано использование SSD с поддержкой NVMe как минимум под базы данных.
Рекомендуется отдельный от RIAD массива бэкап диск, или любое другое облачное хранилище или FTP сервер

Рекомендуем посмотреть:
Сервера в Германии и Финляндия Hetzner
Сервера в России (Питер) Chipcore
Яндекс облако От VPS до полного Kubernetas

Bitrix 24

  • Centos mini
  • Виртуальная машина (рекомендованный вариант установки sh скрипт)
  • Сервер должен проходить официальный тест 1С-Битрикс
  • Свободное пространство на сервере не менее трех кратного размера сайта
  • Доступ root SSH
  • Доступность портов: 25 smtp сервер 80 http 443 https 522- bitrix xmpp сервер 522- bitrix xmpp сервер по ssl 889- ntlm авторизация 889- ntlm авторизация по ssl 889- http сервер мгновенных сообщений 889- https сервер мгновенных сообщений.
  • Доступность портов дополнительно 1935 TCP, 5060 TCP, 1935 UDP, 5060 UDP, 19350-19360 UDP, 8000-48000 UDP.

Битрикс24 достаточно тяжелый и требовательный к железу сайт, рекомендуем процессор I8-I9 ой серии, или AMD Ryzen 7 3700X и выше. НЕ рекомендуем многоядерный Xeone с тактовой частой 2GHz, число ядрер много, толку мало. Лишь при очень больших нагрузках когда разговор не идет уже о комфортности работы, количество ядер выходят на первое место. Если вы решили купить именно такой сервер, рекомендуем арендовать его ближайший аналог и убедиться в достаточности скорости. Производительность в 1С-Битрикс не должна падать ниже 30

Рекомендуем посмотреть:
Сервера в Германии и Финляндия Hetzner Intel I9 900k
Сервера в Германии и Финляндия Hetzner Ryzen 9 300


Переход на memcachd даст прирост?

Нет, даже снизит его, и даже при переходе на работу через сокет, производительность сайта упадет процентов на 10 относительно классического файл+opcache. Нужно понимать что это отдельный демон. В первую очередь в разрезе битрикс используется для кеширования сессий в кластере серверов, при этом он работает через стек TCP\IP и не может работать быстрей чем модуль apache

Какое представление php самое быстрое?

nginx +php-fpm Однако не нужно забывать что вам придется переписать все правила .htaccess в nginx. Данный файл в такой конфигурации не поддерживается. Так же отсутствует bitrixVM с такой конфигурацией.

Дает ли прирост SSD?

Да дает притом весомый, дело в том что самое медленное что есть в Битрикс это запросы к бд. И дело даже не в скорости диска, сколь в параллельном чтение файлов. Крайне не рекомендуется использовать HDD для Базы данных. При размещение самого сайта на HDD у вас могут появиться проблемы с тяжелыми выгрузками импортами бэкапами В таких ситуациях I-O диск может проседать до 100% лавинообразно снижая производительность сайта на момент работы больших агентов, вплоть до 503 ошибок. Лучше всего использовать на данный момент NVme дисков, их производительность положительно влияет на скорость сайта а стоимость тарифов с такими дисками уже близка к обычным SSD

Размещение сервера за границей?

Да самое дешевое место размещения это Hetzner по соотношению цена качество. Но скорость света не обмануть и расстояние накладывает свои особенности. Чем дальше сервер тем больше ping, чем больше ping тем медленней начало ответа сервера, это не сказывается на длинных запросах, но более очевидно при быстрых. У Hetzner ping около 30-50 ms (Германия) Финляндия около 25-30 ms Хостинг в Москве дороже Питера, ping до Питера около 14 ms. При размещение серверов в США ping может подняться до 200 ms что уже может сильно повлиять на Google page speed, то же справедливо и для Дальневосточного региона и Японии.

Разместить весь сайт в разделе памяти?

Если на вашем сервере много оперативной памяти и вы желаете разместить весь сайт в отдельном блоке памяти, то это можно сделать, но при качественных настройках производительности это не даст никакого прироста. Так же прироста не даст размещения в этом блоке памяти и всей базы, лучше увеличить значения памяти my.cnf до 80%

Сколько памяти нужно для сайта?

Если ваш сайт на PHP выше чем 5.6 то вам 4 Гб памяти хватит на все (для стандартного проекта), всю остальную память можно отдать для mysql но особо сильного прироста уже не будет. Но количество памяти не должно быть ниже самой большой таблицы в БД, если у вас таблица занимает 25 ГБ то желательно чтоб она могла поместиться в память а не дробилась и не использовала swap.

Что лучше количество процессоров или их частота?

Частота процессора лучше чем их количество притом значительно. Запрос в БД может происходить только на одном процессоре, и если сами запросы можно параллель то один запрос остается на 1 процессоре, в результате самые тяжелые запросы идущие в БД будут работать с частотой 1 вашего процессора. Увеличение количество процессоров оправдано при увеличение LoadAvarage выше чем 1\количество процессоров. Пункт очень важный, поскольку Xeon 2.2Ghz 32 ядра будет работать медленней чем ваш офисный Core i3

Оставить комментарий

Комментарии (8)

  1. Виктор
    Виктор 03.12.2019 Ответить
    Да отличная штука, жду когда она станет не кривой и косой и можно будет его пускать в продавлен. Как тольок битрикс выпустит официальный контейнер для докера, то настанет новая эра Kubernetes
    https://mcs.mail.ru/containers/?utm_source=google&utm_medium=cpc&utm_campaign=cloud_containers&utm_content=358901422315&utm_term=%2Bkubernetes&gclid=CjwKCAiArJjvBRACEiwA-Wiqq3LeB4a1j-BTv35pFVJcFdxgmV6gQOOhfu9g1qgQikQM14c0UqB7KhoC5-YQAvD_BwE
  2. Алексей 17.04.2020 Ответить
    mbstring.func_overload вместе с php7.x? А ничего, что перегрузка deprecated для этих версий php?
  3. Виктор
    Виктор 19.04.2020 Ответить
    нет, deprecated - это скоро устареет, но вполне себе работает, это не является ошибкой.
    А вот когда он наконец уйдет в warning, вот это будет трагедия, поскольку битрикс к переходу на 0 не готов.
    По этому каждую новую версию php встречаем с ужасом ;)
  4. Виктор
    Виктор 17.05.2020 Ответить
    ДА прожорлив. Много функционала - прожорливость. Мало функционала -быстро.
    Битрикс и Б24 имеют богатый функционал, тут уже ничего не сделаешь
  5. Михаил 06.10.2020 Ответить
    "Много функционала - прожорливость." - это не так. Плохой код = прожорливость.

    Возьмем метод CIBlockPriceTools::GetOffersArray компонента Catalog.Section, который получает определенное число торговых предложений для каждого товара. Реализован данный метод криворуким недопрограммистом, поэтому он сначала получает все возможные предложения для списка товаров (в корне каталога получим все элементы инфоблока с торговыми предложениями), затем проходит циклом по всем полученным элементам и оставляет только n предложений для каждого товара из списка. У нас всего 400 товараов, для каждого товара 1000 предложений и это приводит к тому, что для вывода 10 товаров с 5 ТП к каждому к базе делается 4 миллиона запросов! Но запросы не самая большая беда - потом из полученных данных от этих 4 млн запросов пытается вычленить 50 необходимых для вывода и грузить проц на 100%, пожирая при этом память. В результате на вывод 50 тп без кэширования нужно около 3 минут, пока битрикс занимается ненужной работой по загрузке всех возможных вариантов ТП и вычленению из них 50 нужных!

    Кроме того, криворукие программеры, пускают в релиз апдэйты, которые делают систему не работоспособной. У нас стоит настройка "Загружать только стабильные обновления", но это не спасает. Пару раз в год стабильно прилетают обновления, которые кладут систему на лопатки. Поэтому, после выхода обновления мы ждем, пока выпустят все заплатки на обновление и только после того, как 5 дней небыло новых заплаток, устанавливаем их всем скопом.



  6. Виктор
    Виктор 07.10.2020 Ответить


    "Много функционала - прожорливость." - это не так. Плохой код = прожорливость.
    


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

    Возьмем метод  CIBlockPriceTools::GetOffersArray компонента Catalog.Section, который получает 

    Я сейчас не говорю о качестве сборки, поскольку для битрикса это действительно очень актуальная тема, настолько что это тема отдельной книги. И да тут можно добиться действительно 10 кратного увеличения производительности переписав лишь одно место, и таких мест миллион.
    Но к сожалению битрикс при 2млн товаров даже в админку входит около 2 минут. Все стандартизированное имеет избыточность кода тут ничего не сделаешь.
    Краеугольный камень, или стандарт и избыточность как следствие более медленно.
    Или более быстроо но с документаций огонь. Тут могу заметить что до HI-end проектов самопись действительно в разы хуже чем битрикс, поскольку как правило ее сборка оставляет множество вопросов.
    НО писать юлмарт на битрикс я бы не стал.



    Кроме того, криворукие программеры ...


    Да поскольку битрикс сложный инструмент, как и в любом сложном инструменте в нем множество тонкостей, и действительно проект можно собрать сотнями способов и все они будут кривые.
    ДА как правило обследование проекта который приходит к нам в студию лучшая оценка что я давал это 4, и это лучший результат, средний 2.
    Однако нужно понимать главное, производительность сайта это не только качественный код но и железо которое на бэке.
    Должно быть соотношение качества к трудозатратам и одно из решений это действительно поднять производительность железа.

    Учитывая же маниакальные требования google page speed железо нужно задирать под максимум