238  /  328

Производительность при разработке на Bitrix Framework

Просмотров: 1273 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 16.02.2017

Производительность сайта - комплексное явление. На скорость открытия страниц влияют:

  1. ресурсы сервера;
  2. настройка серверного ПО;
  3. программная платформа (БУС);
  4. прикладная разработка на платформе.

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

Цитатник веб-разработчиков.

Степан Овчинников: Как всегда: универсальность и функциональность против простоты и производительности.

Особенности веб-программирования

Одно из отличий веб-программирования от Windows программирования (однопользовательского) в том, что в Windows вам принадлежат все ресурсы компьютера, и почти неограниченное время. В вебе вам принадлежит лишь совсем чуть-чуть памяти и немного времени (обычно не более 30-90 секунд). Поэтому сложные и долгие расчеты – не для классических сайтов.

Основная задача веб-сайта (в 99% случаев) – это быстро вернуть посетителю запрошенную страничку и освободить ресурсы для обслуживания других посетителей. Именно для решения этой задачи существуют такие инструменты, как NGINX, lighthttpd, кэширование, PHP-акселераторы и другие. Для большинства сайтов с небольшой посещаемостью таких инструментов, имеющихся в наличии на практически каждом хостинге или почти в любой CMS, вполне достаточно.

Однако для более посещаемых проектов возникает необходимость дополнительной оптимизации.


Bitrix Framework достаточно хорошо ведет себя при большой нагрузке. Есть официальные результаты тестирования, с которыми можно познакомиться на сайте компании. Но нам интересен опыт реальной эксплуатации сложных, ресурсоемких проектов.

Сложным ресурсоемким проектом можно назвать проект, под 30 000 посещений, с количеством элементов в базе под 500 000 и больше, более 40 типов инфоблоков, самих инфоблоков больше 200. В ключевых инфоблоках по 150-200 свойств.

Что позволяет работать таким проектам:

  • Инфоблоки выборки из которых можно делать на стандартном API;
  • Кэширование.

Нюансы, на которые надо обращать внимание:

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

Самое главное это - проектирование инфоблоков. Также нужно быть внимательными с обработчиками по работе с инфоблоками, и с агентами. И при проектировании необходимо знать и учитывать особенности API. Например, выбирать элементы по IBLOCK_CODE или IBLOCK_TYPE хуже, чем по IBLOCK_ID. Это конкретный пример, таких вариаций очень много.

Сложные и объемные проекты лучше реализовывать на собственных серверах. При этом рекомендуется использовать 2 сервера: отдельно для базы и для статики и кэша.

Опыт разработчиков проектов на Bitrix Framework показывает, что около 1 миллиона хитов на проекте – это реальный показатель, если уметь конфигурировать MySQL.

Есть и своеобразная «вилка»: база данных против надежности жесткого диска. Не кешировать данные - хуже для базы и лучше для диска. То есть если используется очень мощный сервер под БД, и он хорошо сконфигурирован, то это может быть реальной альтернативой файловому кешу.

Примечание: Для снижения нагрузки к базе данных и удобства работы с системой в Bitrix Framework используется хранение разнообразных данных в файловой системе. Подробнее про файлы и их влияние на производительность можно посмотреть в уроке Структура файлов.


Ссылки по теме:




7
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии