Сегодня в рубрике "Интервью CMS Magazine" Сергей Рыжиков, генеральный директор компании «1С-Битрикс», рассказывает о производительности CMS.
Сергей, совсем недавно Ваша компания опубликовала пресс-релиз о весьма впечатляющих результатах нагрузочного тестирования нескольких редакций "1С-Битрикс".
В связи с этим у "CMS Magazine" возникло несколько вопросов.
1. Как избежать отказа в работе сайта во время пиковых нагрузок?
Самое главное в этом вопросе – заранее подготовиться к высоким нагрузкам. Первое что нужно, это понять, будут ли у вас вообще на сайте пиковые нагрузки и что это такое. Если вы собрались размещать рекламу на телевидении, в метро или купили большой объем рекламы в Интернете, то, конечно, вам стоит ожидать пиковых нагрузок.
Следующим шагом необходимо подготовить свой сайт и оборудование для обработки определенной нагрузки, а на случай превышения нагрузок (а это точно случится) научиться встраивать незаметную для пользователей очередь по обслуживанию запросов. При этом система будет обрабатывать не сразу все запросы от всех пользователей, одновременно пришедших на сайт, а постепенно, небольшими группами, чтобы не допустить остановки сервера.
Затем – обязательно провести нагрузочное тестирование, чтобы ваши усилия не оказались напрасными. После этого вы уже готовы к любым нагрузкам и уверены в себе :)
2. Возможна ли высокая производительность сайта в условиях ограниченности ресурсов на виртуальном хостинге? Как этого добиться? Что для этого реализовано в "1С-Битрикс: Управление сайтом"?
«1С-Битрикс: Управление сайтом» позволяет достичь превосходных результатов по быстродействию даже в условиях ограниченности ресурсов и на виртуальном хостинге, а также строить высокопроизводительные системы для веб-сайтов с очень большой посещаемостью и высокими пиковыми нагрузками.
Сегодня большинство наших клиентов работает именно на виртуальном хостинге. Это связано с привлекательной ценой и массовым предложением виртуального хостинга.
Продукт прекрасно адаптирован для работы в жестких условиях ограниченных ресурсов на виртуальном хостинге. Для ресурсов с относительно невысокой посещаемостью, виртуальный хостинг это отличный способ сэкономить средства и потратить их на продвижение проекта. Когда аудитория сайта и объемы информации существенно возрастут, можно перейти на другие виды хостинга и повысить быстродействие.
Если сайт еще развивается и не сталкивается с большой посещаемостью, можно использовать очень дешевые решения, предлагаемые на рынке. Продукт демонстрирует отличное быстродействие на виртуальном хостинге, решая максимум бизнес-задач при минимуме вычислительной мощности, отводимой проекту. Стоимость shared-хостинга - от 300 до 800 рублей в месяц, что доступно любому клиенту.
Стабильная работа «1С-Битрикс: Управление сайтом» под большой нагрузкой объясняется оригинальными техническими решениями и огромной работой в области оптимизации, выполненной разработчиками продукта.
Во-первых, оптимизированное ядро продукта и PHP-скрипты. Более года назад в отделе разработки была выделена отдельная рабочая группа по производительности, которая планомерно осуществляла глубокий аудит кода ядра, модулей и компонентов в продукте. Используя специализированные программные средства, проводился поиск узких мест, ошибок, неоптимального использования переменных и методов.
Во-вторых, это многообразие методов кеширования. В «1С-Битрикс: Управление сайтом» реализовано многоступенчатое кеширование данных: как на уровне ядра, когда система самостоятельно кеширует часто запрашиваемый контент, так и на прикладном уровне, когда разработчик может самостоятельно включать в кеш результаты работы модулей и компонентов. В свою очередь, технология автокеширования, появившаяся в версии 6.0, предоставила конечным пользователям, нетехническим специалистам, возможность самостоятельно настраивать и управлять кешем динамических компонентов.
В-третьих, сжатие веб-страниц. Скорость передачи веб-страницы по Сети и загрузки ее в браузер клиента также имеет существенное значение для обеспечения быстрого отклика сайта. Мы разработали специальный модуль компрессии, который вне зависимости от настроек серверного программного обеспечения позволяет в несколько десятков раз сжимать данные, генерируемые веб-сервером и ускорять загрузку страниц.
И кроме перечисленного, инструментарий отладки для разработчиков. «1C-Битрикс: Управление сайтом» содержит встроенные средства, используя которые разработчик может оптимизировать созданные веб-страницы с целью обеспечить минимальное время их генерации. Инструментарий подсчитывает время исполнения каждого компонента, анализирует общую статистику SQL-запросов к базе данных и время их выполнения. На основании полученной информации можно оценить эффективность кода, определить узкие места с точки зрения производительности, реализовать кеширование данных.
3. Для чего проводилось нагрузочное тестирование? Каковы результаты?
Нагрузочное тестирование является важнейшей процедурой подготовки крупного проекта к открытию. В нашей практике бывали случаи, когда корректно работающий в тестовом режиме с небольшими объемами информации сайт начинал «барахлить» при работе с реальной аудиторией. Причина проблем чаще всего скрывалась в неправильном конфигурировании сервера или была связана с ошибками программирования при разработке проекта.
Нагрузочное тестирование позволяет определить предел работоспособности созданного проекта именно на этом оборудовании. Зачастую, простые корректировки конфигурации могут ускорить проект в 5-10 раз и сделать его устойчивым к стрессовым нагрузкам.
Мы рассматриваем тестирование самого продукта «1С-Битрикс: Управление сайтом» как вопрос предоставления нашим клиентам гарантий в плане производительности и отказоустойчивости. Прекрасные результаты нагрузочного тестирования позволяют нам заявлять о готовности проектов, созданных на базе «1С-Битрикс: Управление сайтом», к масштабированию под любые нагрузки
Нагрузочное тестирование MySQL-версии продукта проводилось совместно с нашими партнерами QSOFT и .masterhost.
Основных целей тестирования было две:
Мы получили очень высокие результаты:
Нагрузочное тестирование продукта проводилось очень детально. Результаты тестирования подробно представлены на нашем сайте в разделе «Производительность», чтобы все компании могли сконфигурировать свои сервера и получить такие же высокие результаты производительности, используя конфигурационные файлы и рекомендации разработчиков.
В ближайшее время мы планируем провести нагрузочное тестирование продукта на двух серверах и получить фантастические результаты.
4. Насколько важен уровень разработчика для создания проектов, готовых к большим нагрузкам?
В целом, можно сказать, что квалификация разработчика и производительность проекта находятся в определенной зависимости. Бывали у нас случаи, когда наш модуль поиска, выполняющий два простых запроса, после изменения разработчиком выполнял более 5000 запросов, что существенно замедляло поиск по сайту. Для оперативного выявления подобных ситуаций были созданы специальные инструменты отладки.
Но ключевым изменением, позволившим значительно снизить требования к уровню квалификации разработчика, стали Компоненты 2.0 и технология автокеширования. Реализация этой технологии позволила разработчикам, никогда ранее не сталкивавшимся с высоко нагруженными проектами, с честью выходить из сложных ситуаций и компенсировать недостаток опыта. Тем не менее, мы считаем, что опыт разработчиков все еще имеет значение, хотя и меньшее.
5. Начиная с какой посещаемости сайта, необходимо заниматься производительностью и специально настраивать сайт, ПО, оборудование?
Если проект работает на виртуальном хостинге, то настройка ПО и оборудования – это задача хостера, и они ее выполняют независимо от нагрузки. Если вы используете выделенный сервер, то настройку необходимо сделать с самого начала.
Для сайта, разработанного на «1С-Битрикс: Управление сайтом», сегодня достаточно просто включить режим автокеширования, и сайт готов к нагрузкам.
6. Тесты - это хорошо. Но вот "средний" магазин - ему этого хватит? А "средний" корпоративный сайт?
Безусловно. Более того, можно сказать, что в России только около двух сотен проектов, которым может потребоваться большая посещаемость, чем протестированная нами. Обычные корпоративные сайты и магазины будут прекрасно работать и справляться с нагрузками.
7. Ваша компания зарегистрировалась на проекте «CMS Magazine» одной из первых и постоянно поддерживает актуальность информации. Как следствие, в статистике просмотров и сравнений «1С-Битрикс» стабильно занимает первые места. Дает ли это какой-то положительный эффект по Вашему мнению для продукта и компании в целом?
Мы всегда рады появлению проектов, которые ставят своей целью анализ и исследование нашего сегмента рынка. На сегодняшний день очень не хватает объективных аналитических материалов. Мы считаем продукт «1С-Битрикс: Управление сайтом» лучшим и заслуженно лидирующим продуктом на рынке и, конечно, заинтересованы в объективном сравнении решений.
Хочется пожелать вам удачи в развитии проекта. Если вы сможете сконцентрировать свои усилия на подготовке аналитических материалов и детальном исследовании решений, это обязательно будет оценено читателями.
..........................................................................................................................................................
Перепечатка статьи разрешена исключительно при указании активной ссылки на сайт «CMS Magazine», как первоисточник.
Обсудить тему производительности CMS на форуме