Transcript
Page 1: 1С-Битрикс - Производительность

Александр Демидов«1С-Битрикс»

Производительность проектов на«1С-Битрикс: Управление сайтом»

Page 2: 1С-Битрикс - Производительность

Основной приоритет

Качество обслуживания клиентов!

Page 3: 1С-Битрикс - Производительность

Почему сайт должен быть всегда доступен?Почему сайт должен быть быстрым?

• Клиенты и их лояльность (сайт недоступен – потеряны заказы, клиент с большой долей вероятности не вернется).

• «Избалованность» клиентов быстрыми ajax-интерфейсами

• Индексация сайта поисковыми роботами

• Финансовые потери во время рекламных компаний

• Стоимость контекстной рекламы

Page 4: 1С-Битрикс - Производительность

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

Производительность проекта зависит от трех составляющих:

• Конфигурация сервера или настройки хостинга и его общая производительность

• Настройки платформы, которые влияют на производительность (автокеширование, html-кеш, параметры поиска)

• Качество разработки, интеграции с платформой, которая выполняется веб-разработчиком

Page 5: 1С-Битрикс - Производительность

Ошибки и проблемы на любом из трех этапов вызывают неудовлетворенность

клиента относительно всего проекта!

1. Хостинг

2. CMS

3. Веб-разработчик

Page 6: 1С-Битрикс - Производительность

1. Хостинг

Page 7: 1С-Битрикс - Производительность

Конфигурация сервераОшибки конфигурирования по-прежнему являются одним из основных препятствием для достижения максимальной производительности.

Типовые ошибки/проблемы/недостатки конфигурации:

•PHP как CGI

•open_basedir

•Не установлен прекомпилятор PHP

•Недостаточно памяти прекомпилятору

•Медленная файловая система

•Отсутствует FrontEnd (nginx)

•ngnix есть, но всю статику запрашивает у Apache

•Не отрегулировано значение MaxClients в Apache

•И т.д.

Page 8: 1С-Битрикс - Производительность

Очень мало правильных конфигурацийДаже наличие максимально полной документации и практических

рекомендаций по настройке серверов не решает проблему производительности!

Почему?

•Низкая квалификация технических специалистов

•Отсутствие времени для «тонкой» настройки

•«Историческое наследие» – использование конфигураций 3-5-…-летней давности, в лучшем случае – апгрейд ПО

•Сложность адаптации виртуального «разделяемого» (shared) хостинга

•Шаблонные конфигурации для всех проектов

Page 9: 1С-Битрикс - Производительность

«1С-Битрикс: Виртуальная машина»

«1С-Битрикс: Виртуальная машина» выпущена в 2009 году. Версии 1.x существовали в виде образа VMware.

Виртуальная машина эмулирует работу реального сервера и включает в себя:

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

Page 10: 1С-Битрикс - Производительность

«1С-Битрикс: Веб-окружение»Следующий шаг (2010 год): bitrix-env.rpm – пакет для установки и настройки Linux окружения и продуктов «1С-Битрикс»:•mysql-server 5.1.х•httpd-server (Apache 2.2.х) •zend-server-ce-php•mod-php •nginx •memcached •catdoc •xpdf

Поддерживаемые платформы:•Fedora 8-14 (i386)•CentOS 5 (i386, x86_64)•Red Hat Enterprise Linux 5 (i386, x86_64)

Page 11: 1С-Битрикс - Производительность

«1С-Битрикс: Веб-окружение»• Минимальные расходы на развертывание

оптимальной конфигурации

• Наилучшая производительность

• Сбалансированность под большие нагрузки

• Автоматическое конфигурирование под ресурсы сервера

• Проверено нагрузочными тестами

• Проверено отделом безопасности

• Оптимизировано для работы корпоративного портала

• Инсталлятор продуктов «1С-Битрикс»

Бесплатно! Экономит 200-300 часов администрирования.

Page 12: 1С-Битрикс - Производительность

Технологии виртуальных машинVMware - наиболее развитая технология, поддержка любых ОС, отсутствуют специфические требования к аппаратному обеспечению

Virtuozzo Parallels - коммерческая технология виртуализации на уровне ядра Linux, поддерживается Linux, windows, целенаправленно разработана для ISP

HyperV - технология Microsoftтесная интеграция с технологией виртуализации от Intel, предназначена для виртуализации Windows серверов и ограниченного перечня дистрибутивов Linux

Amazon Elastic Compute Cloud (Amazon EC2) - реализованная технология cloud computing, упор сделан на оплате использованных ресурсов: процессора, дисков, сети

Page 13: 1С-Битрикс - Производительность

Использование веб-окружения и виртуальных машин

• Запуск виртуальной машины (VMware player) на имеющемся парке Windows-серверов

• Установка веб-окружения на собственном (или арендованном сервере)

• Установка веб-окружения на VPS

• Аренда виртуальной машины (или VPS с предустановленным веб-окружением) у хостинг-провайдеров

• Использование в «облачных» средах (Amazon, Scalaxy и т.д.)

Page 14: 1С-Битрикс - Производительность

2. CMS

Page 15: 1С-Битрикс - Производительность

Производительность платформы

Настройки платформы «1С-Битрикс», которые влияют на производительность:

• Автокеширование компонентов

• HTML кеш

• Управляемый кеш

• Варианты хранения кеша

• Варианты хранения сессий

• Использование различных модулей

• Использование закодированных модулей

Page 16: 1С-Битрикс - Производительность

Настройки кеширования

• Автокеширование компонентов ускоряет сайт в несколько раз и сводит к минимуму количество SQL-запросов и PHP-кода

• Управляемый кеш (Сache Dependencies) автоматически обновляет кеш компонентов при изменении данных

• HTML кеш – эффективен для статичных данных, а также для разрешения проблем, связанных с пиковой посещаемостью («хабраэффект», DDoS)

Page 17: 1С-Битрикс - Производительность

Модули продукта

Эффективность – всегда баланс между функционалом и производительностью.

Среднее влияние модулей на скоростьгенерации страниц:

•«Веб-аналитика» – 15%•«Проактивная защита» (WAF) – 3%•«Веб-антивирус» – 5%•Все прочие модули – 3%

Page 18: 1С-Битрикс - Производительность

Закодированный код / модули

2010 год – отказ от использования закодированных исходных кодов. Теперь даже демо-версии – в открытых кодах!

•Не требуется Zend Optimizer

•Повышение производительности (более эффективная работа прекомпиляторов PHP)

•Подходит больше хостингов

•Плюс для хостеров FreeBSD, т.к. Zend прекратила поддержку этой платформы

Page 19: 1С-Битрикс - Производительность

Цели нагрузочного тестирования платформы

Проверка и оптимизация конфигурации серверного программного обеспечения (цель – получить идеальное веб-окружение; тесты проводились на «1С-Битрикс: Веб-окружение» версии 1.6, по результатам выпущена версия 2.0).

Оценка максимальной производительности, которую способны выдерживать типовые редакции на выделенном оборудовании.

Влияние опций и модулей продукта на производительность.

Оценка стабильности при максимальных нагрузках при проведении 24-часовых тестов.

Выявление ограничений конфигурации, определение методов дальнейшего масштабирования и оптимизации.

Проверка продукта в различных сценариях

Page 20: 1С-Битрикс - Производительность

Нагрузочное тестирование

Нагрузочное тестирование было проведено в 2010 году совместно с компаниями «Онтико» и .masterhost. Тестировалась версия 9.5 (MySQL), редакции «Старт» и «Бизнес».

На типовом оборудовании 2010 года – на выделенном сервере HP ProLiant DL120:

•8 511 355 хитов в сутки на редакции «Бизнес»

•12 420 746 хитов в сутки на редакции «Старт»

•85 103 456 хитов в сутки на редакции «Старт» (с включенной опцией «HTML кеширование»)

Page 21: 1С-Битрикс - Производительность
Page 22: 1С-Битрикс - Производительность

Используемое оборудованиеДля тестовых установок «1С-Битрикс: Управление сайтом» использовался выделенный сервер «EuroDedicated Универсальный», предоставленный компанией .masterhost:HP ProLiant DL120, 1×Intel Quad Core X3210, 1×1TB SATA, 8GB RAM

Обычный заурядный сервер, доступный каждому!

Аренда: 5 000 руб./мес.

Page 23: 1С-Битрикс - Производительность

Профили пользователей

Authorized users Путь по сайту Всего стр. в сессии 29:главная страница / 3вход в систему /login/ 2вид товара /catalog/furniture/XXX/YYY/ 8категории товаров /catalog/furniture/XXX/ 3сравнение товаров /catalog/furniture/compare/ 5просмотр/действия с корзиной /personal/cart/ 3оформление заказа /personal/order/make/ 1

/personal/order/ 1информационный раздел /about/delivery/ 1информация /about/ 1выход /about/?logout=yes 1

Page 24: 1С-Битрикс - Производительность

Профили пользователей

Non-Authorized users Путь по сайту Всего стр. в сессии 22:

главная страница / 7

каталог /catalog/ 1

вид товара /catalog/furniture/XXX/YYY/ 6

категории товаров /catalog/furniture/XXX/ 4

информация /about/ 1

информационный раздел /about/ZZZ/ 3

Page 25: 1С-Битрикс - Производительность

3. Веб-разработка

Page 26: 1С-Битрикс - Производительность

Самые частые ошибки

• Отключенное автокеширование

• Явно выключенное кеширование компонентов

• Собственные компоненты не поддерживают кеширование

Page 27: 1С-Битрикс - Производительность

Рекомендации разработчикам

• В шаблонах сайта используйте стандартные компоненты меню с кешированием

• Разрабатывая сайт, используйте либо стандартные, либо собственные индивидуальные компоненты

• Используйте API продукта, крайне нежелательны прямые запросы к базе данных

• В настройках компонентов указывайте значение кеширования «Авто+Управляемое» с большим временем кеширования

• В режиме Автокеширования компоненты должны выполнять минимум запросов к базе данных (в идеале – 0)

• Не выбирайте неиспользуемые данные, чтобы не создавать неэффективные большие файлы кеша компонентов

Page 28: 1С-Битрикс - Производительность

Анализ производительности системы

Выполненный указанный сценарий решает проблемы 97% сайтов!

И только для 2-3% требуется детальный анализ логики проекта, запросов, анализ сложной бизнес-логики.

Шаг 1: Анализ конфигурации

Шаг 2: Анализ конфигурации «1С-Битрикс»

Шаг 3: Предварительная оценка качества разработки

Шаг 4: Итоговый анализ показателей

Page 29: 1С-Битрикс - Производительность

Замеры на вашей конфигурацииЭталонные замеры производительности, которые используются «Монитором производительности», выполнены на виртуальной машине.

Page 30: 1С-Битрикс - Производительность

Замеры на вашей конфигурации

Page 31: 1С-Битрикс - Производительность

Замеры на вашей конфигурации

Page 32: 1С-Битрикс - Производительность

Режим отладки - время создания страницы

Page 33: 1С-Битрикс - Производительность

Варианты масштабирования до 10.0

1. Разделение на два сервера: веб-сервер + база данных.

2. Увеличение мощности оборудования (чем мощнее – тем дороже; рост стоимости не пропорционален).

3. Выделение кеша на один внешний сервер через memcached.

4. Переход на Oracle (минимальная лицензия +5000$ за процессор).

5. Создание Oracle RAC (Real Application Cluster). Проект – около 150 000$ (оборудование + лицензия + «общая полка»). Очень мало специалистов.

Для большинства клиентов производительности достаточно, но не решены проблемы отказоустойчивости, резервирования, сетевой доступности.

Page 34: 1С-Битрикс - Производительность

Нагрузочное тестирование

Нагрузочное тестирование - обязательный этап в завершении настройки.

Нагрузочное тестирование является важнейшей процедурой подготовки крупного проекта к открытию.

Нагрузочное тестирование позволяет определить предел работоспособности созданного проекта именно на выбранном оборудовании.

Зачастую, простые корректировки конфигурации могут ускорить проект в 5-10 раз и сделать его устойчивым к стрессовым нагрузкам.

Page 35: 1С-Битрикс - Производительность

Проекты с высокой нагрузкой

Page 36: 1С-Битрикс - Производительность

Подробно о производительности:

http://www.1c-bitrix.ru/products/cms/performance/

Page 37: 1С-Битрикс - Производительность

Спасибо за внимание!

Вопросы? :)

Александр Демидов

[email protected]

+7 (915) 201-1500

@demidov

http://www.1c-bitrix.ru