ݺߣ

ݺߣShare a Scribd company logo
Александр Демидов «1С-Битрикс» Производительность проектов на «1С-Битрикс:   Управление сайтом»
Основной приоритет Качество обслуживания клиентов!
Почему сайт должен быть всегда доступен? Почему сайт должен быть быстрым? Клиенты и их лояльность (сайт недоступен –   потеряны заказы, клиент с большой долей вероятности не вернется). «Избалованность» клиентов быстрыми  ajax- интерфейсами Индексация сайта поисковыми роботами Финансовые потери во время рекламных компаний Стоимость контекстной рекламы
Производительность проекта Производительность проекта зависит от трех составляющих: Конфигурация сервера  или настройки  хостинга  и его общая производительность  Настройки платформы ,  которые влияют на производительность (автокеширование, html-кеш, параметры поиска) Качество разработки ,  интеграции с платформой, которая выполняется веб-разработчиком
Ошибки и проблемы на любом из трех этапов вызывают неудовлетворенность клиента относительно всего проекта! 1. Хостинг  2.  CMS 3.  Веб-разработчик
1.  Хостинг
Конфигурация сервера Ошибки конфигурирования по - прежнему являются одним из основных препятствием для достижения максимальной производительности.  Типовые ошибки / проблемы / недостатки конфигурации: PHP  как  CGI open_basedir Не установлен прекомпилятор  PHP Недостаточно памяти прекомпилятору Медленная файловая система Отсутствует  FrontEnd (nginx) ngnix  есть, но всю статику запрашивает у  Apache Не отрегулировано значение  MaxClients  в  Apache И т.д.
Очень мало правильных конфигураций Даже наличие максимально полной документации и практических рекомендаций по настройке серверов не решает проблему производительности! Почему? Низкая квалификация технических специалистов Отсутствие времени для «тонкой» настройки «Историческое наследие» – использование конфигураций 3-5-…-летней давности, в лучшем случае – апгрейд ПО Сложность адаптации виртуального «разделяемого» ( shared)  хостинга Шаблонные конфигурации для всех проектов
«1С-Битрикс: Виртуальная машина» «1С-Битрикс: Виртуальная машина» выпущена в 2009 году. Версии 1. x  существовали в виде образа  VMware . Виртуальная машина  эмулирует работу реального сервера  и включает в себя:  сконфигурированную операционную систему, веб-сервер,  базу данных,  firewall,  почтовый сервер,  а также большое число настроек, от которых зависит надежность, производительность и безопасность веб-проекта .
«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)
«1С-Битрикс: Веб-окружение» Минимальные расходы на развертывание оптимальной конфигурации Наилучшая производительность  Сбалансированность под большие нагрузки Автоматическое конфигурирование под ресурсы сервера Проверено нагрузочными тестами Проверено отделом безопасности Оптимизировано для работы корпоративного портала Инсталлятор продуктов «1С-Битрикс» Бесплатно! Экономит 200-300 часов администрирования.
Технологии виртуальных машин VMware  - наиболее развитая технология, поддержка любых ОС, отсутствуют специфические требования к аппаратному обеспечению Virtuozzo   Parallels  - коммерческая технология виртуализации на уровне ядра  Linux , поддерживается  Linux , windows, целенаправленно разработана для ISP HyperV  - технология Microsoft тесная интеграция с технологией виртуализации от Intel, предназначена для виртуализации Windows серверов и ограниченного перечня дистрибутивов  Linux Amazon Elastic Compute Cloud (Amazon EC2)  - реализованная технология cloud computing, упор сделан на оплате использованных ресурсов: процессора, дисков, сети
Использование веб-окружения и виртуальных машин Запуск виртуальной машины ( VMware player)  на имеющемся парке  Windows- серверов Установка веб-окружения на собственном (или арендованном сервере) Установка веб-окружения на  VPS Аренда виртуальной машины (или  VPS  с предустановленным веб-окружением) у хостинг-провайдеров Использование в «облачных» средах ( Amazon, Scalaxy  и т.д.)
2 . CMS
Производительность платформы Настройки платформы «1С-Битрикс», которые влияют на производительность: Автокеширование   компонентов HTML  кеш Управляемый кеш Варианты хранения кеша Варианты хранения сессий Использование различных модулей Использование закодированных модулей
Настройки кеширования Автокеширование   компонентов  ускоряет сайт в несколько раз и сводит к минимуму количество  SQL- запросов и  PHP- кода Управляемый кеш ( С ache Dependencies ) автоматически обновляет кеш компонентов при изменении данных HTML  кеш  – эффективен для статичных данных, а также для разрешения проблем, связанных с пиковой посещаемостью («хабраэффект»,  DDoS)
Модули продукта Эффективность – всегда баланс между функционалом и производительностью. Среднее влияние модулей на скорость генерации страниц: «Веб-аналитика» – 15% «Проактивная защита» ( WAF) – 3% «Веб-антивирус» – 5% Все прочие модули – 3%
Закодированный код  /  модули 2010 год – отказ от использования закодированных исходных кодов. Теперь даже демо-версии – в открытых кодах! Не требуется  Zend Optimizer Повышение производительности (более эффективная работа прекомпиляторов  PHP) Подходит больше хостингов Плюс для хостеров  FreeBSD , т.к.  Zend  прекратила поддержку этой платформы
Цели нагрузочного тестирования платформы Проверка и оптимизация конфигурации серверного программного обеспечения (цель – получить идеальное веб-окружение ;  тесты проводились на «1С-Битрикс: Веб-окружение» версии 1.6, по результатам выпущена версия 2.0). Оценка максимальной   производительности, которую способны выдерживать типовые редакции на выделенном оборудовании. Влияние опций и модулей продукта на производительность. Оценка стабильности при максимальных нагрузках при проведении 24-часовых тестов. Выявление ограничений конфигурации, определение методов дальнейшего масштабирования и оптимизации. Проверка продукта в различных сценариях
Нагрузочное тестирование Нагрузочное тестирование было проведено в 2010 году совместно с компаниями «Онтико» и  .masterhost.  Тестировалась версия 9.5 ( MySQL) , редакции «Старт» и «Бизнес». На типовом оборудовании 2010 года – на выделенном сервере  HP ProLiant DL120 : 8 511 355  хитов в сутки на редакции «Бизнес» 12 420 746  хитов в сутки на редакции «Старт» 85 103 456  хитов в сутки на редакции «Старт» (с включенной опцией «HTML кеширование»)
Используемое оборудование Для тестовых установок  «1С-Битрикс: Управление сайтом»  использовался выделенный сервер  «EuroDedicated Универсальный» , предоставленный компанией  . masterhost : HP ProLiant DL120, 1×Intel Quad Core X3210, 1×1TB SATA, 8GB RAM Обычный заурядный сервер, доступный каждому! Аренда: 5 000 руб. / мес.
Профили пользователей 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
Профили пользователей Non-Authorized users Путь по сайту Всего стр. в сессии 22: главная страница / 7 каталог /catalog/ 1 вид товара /catalog/furniture/XXX/YYY/ 6 категории товаров /catalog/furniture/XXX/ 4 информация /about/ 1 информационный раздел /about/ZZZ/ 3
3. Веб-разработка
Самые частые ошибки Отключенное автокеширование Явно выключенное кеширование компонентов  Собственные компоненты не поддерживают кеширование
Рекомендации разработчикам В шаблонах сайта используйте стандартные компоненты меню с кешированием Разрабатывая сайт, используйте либо стандартные, либо собственные индивидуальные компоненты Используйте  API  продукта, крайне нежелательны прямые запросы к базе данных В настройках компонентов указывайте значение кеширования «Авто+Управляемое» с большим временем кеширования В режиме Автокеширования компоненты должны выполнять минимум запросов к базе данных (в идеале – 0) Не выбирайте неиспользуемые данные, чтобы не создавать неэффективные большие файлы кеша компонентов
Анализ производительности системы Выполненный указанный сценарий решает проблемы  97% сайтов ! И только для  2-3%  требуется детальный анализ логики проекта, запросов, анализ сложной бизнес-логики. Шаг 1: Анализ конфигурации Шаг 2: Анализ конфигурации «1С-Битрикс» Шаг 3: Предварительная оценка качества разработки Шаг 4: Итоговый анализ показателей
Замеры на вашей конфигурации Эталонные замеры производительности, которые используются «Монитором производительности», выполнены на виртуальной машине.
Замеры на вашей конфигурации
Замеры на вашей конфигурации
Режим отладки - время создания страницы
Варианты масштабирования до 10.0 Разделение на два сервера: веб-сервер + база данных. Увеличение мощности оборудования (чем мощнее – тем дороже ;  рост стоимости не пропорционален). Выделение кеша на один внешний сервер через  memcached. Переход на  Oracle ( минимальная лицензия  +5000$  за процессор ) . Создание  Oracle RAC (Real Application Cluster).  Проект – около 150 000 $ ( оборудование + лицензия + «общая полка»). Очень мало специалистов. Для большинства клиентов производительности достаточно , но не решены проблемы отказоустойчивости, резервирования, сетевой доступности.
Нагрузочное тестирование Нагрузочное тестирование  -   обязательный этап  в завершении настройки. Нагрузочное тестирование является  важнейшей процедурой подготовки крупного проекта к открытию . Нагрузочное тестирование позволяет  определить предел работоспособности  созданного проекта именно  на выбранном оборудовании .  Зачастую, простые корректировки конфигурации могут  ускорить проект в 5-10 раз   и сделать его устойчивым к стрессовым нагрузкам.
Проекты с высокой нагрузкой
Подробно о производительности: http://www.1c-bitrix.ru/products/cms/performance /
Спасибо за внимание! Вопросы? :) Александр Демидов [email_address] +7  ( 915 )  201-1500 @demidov http://www.1c-bitrix.ru

More Related Content

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

  • 1. Александр Демидов «1С-Битрикс» Производительность проектов на «1С-Битрикс: Управление сайтом»
  • 2. Основной приоритет Качество обслуживания клиентов!
  • 3. Почему сайт должен быть всегда доступен? Почему сайт должен быть быстрым? Клиенты и их лояльность (сайт недоступен – потеряны заказы, клиент с большой долей вероятности не вернется). «Избалованность» клиентов быстрыми ajax- интерфейсами Индексация сайта поисковыми роботами Финансовые потери во время рекламных компаний Стоимость контекстной рекламы
  • 4. Производительность проекта Производительность проекта зависит от трех составляющих: Конфигурация сервера или настройки хостинга и его общая производительность Настройки платформы , которые влияют на производительность (автокеширование, html-кеш, параметры поиска) Качество разработки , интеграции с платформой, которая выполняется веб-разработчиком
  • 5. Ошибки и проблемы на любом из трех этапов вызывают неудовлетворенность клиента относительно всего проекта! 1. Хостинг 2. CMS 3. Веб-разработчик
  • 7. Конфигурация сервера Ошибки конфигурирования по - прежнему являются одним из основных препятствием для достижения максимальной производительности. Типовые ошибки / проблемы / недостатки конфигурации: PHP как CGI open_basedir Не установлен прекомпилятор PHP Недостаточно памяти прекомпилятору Медленная файловая система Отсутствует FrontEnd (nginx) ngnix есть, но всю статику запрашивает у Apache Не отрегулировано значение MaxClients в Apache И т.д.
  • 8. Очень мало правильных конфигураций Даже наличие максимально полной документации и практических рекомендаций по настройке серверов не решает проблему производительности! Почему? Низкая квалификация технических специалистов Отсутствие времени для «тонкой» настройки «Историческое наследие» – использование конфигураций 3-5-…-летней давности, в лучшем случае – апгрейд ПО Сложность адаптации виртуального «разделяемого» ( shared) хостинга Шаблонные конфигурации для всех проектов
  • 9. «1С-Битрикс: Виртуальная машина» «1С-Битрикс: Виртуальная машина» выпущена в 2009 году. Версии 1. x существовали в виде образа VMware . Виртуальная машина эмулирует работу реального сервера и включает в себя: сконфигурированную операционную систему, веб-сервер, базу данных, firewall, почтовый сервер, а также большое число настроек, от которых зависит надежность, производительность и безопасность веб-проекта .
  • 10. «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)
  • 11. «1С-Битрикс: Веб-окружение» Минимальные расходы на развертывание оптимальной конфигурации Наилучшая производительность Сбалансированность под большие нагрузки Автоматическое конфигурирование под ресурсы сервера Проверено нагрузочными тестами Проверено отделом безопасности Оптимизировано для работы корпоративного портала Инсталлятор продуктов «1С-Битрикс» Бесплатно! Экономит 200-300 часов администрирования.
  • 12. Технологии виртуальных машин VMware - наиболее развитая технология, поддержка любых ОС, отсутствуют специфические требования к аппаратному обеспечению Virtuozzo Parallels - коммерческая технология виртуализации на уровне ядра Linux , поддерживается Linux , windows, целенаправленно разработана для ISP HyperV - технология Microsoft тесная интеграция с технологией виртуализации от Intel, предназначена для виртуализации Windows серверов и ограниченного перечня дистрибутивов Linux Amazon Elastic Compute Cloud (Amazon EC2) - реализованная технология cloud computing, упор сделан на оплате использованных ресурсов: процессора, дисков, сети
  • 13. Использование веб-окружения и виртуальных машин Запуск виртуальной машины ( VMware player) на имеющемся парке Windows- серверов Установка веб-окружения на собственном (или арендованном сервере) Установка веб-окружения на VPS Аренда виртуальной машины (или VPS с предустановленным веб-окружением) у хостинг-провайдеров Использование в «облачных» средах ( Amazon, Scalaxy и т.д.)
  • 15. Производительность платформы Настройки платформы «1С-Битрикс», которые влияют на производительность: Автокеширование компонентов HTML кеш Управляемый кеш Варианты хранения кеша Варианты хранения сессий Использование различных модулей Использование закодированных модулей
  • 16. Настройки кеширования Автокеширование компонентов ускоряет сайт в несколько раз и сводит к минимуму количество SQL- запросов и PHP- кода Управляемый кеш ( С ache Dependencies ) автоматически обновляет кеш компонентов при изменении данных HTML кеш – эффективен для статичных данных, а также для разрешения проблем, связанных с пиковой посещаемостью («хабраэффект», DDoS)
  • 17. Модули продукта Эффективность – всегда баланс между функционалом и производительностью. Среднее влияние модулей на скорость генерации страниц: «Веб-аналитика» – 15% «Проактивная защита» ( WAF) – 3% «Веб-антивирус» – 5% Все прочие модули – 3%
  • 18. Закодированный код / модули 2010 год – отказ от использования закодированных исходных кодов. Теперь даже демо-версии – в открытых кодах! Не требуется Zend Optimizer Повышение производительности (более эффективная работа прекомпиляторов PHP) Подходит больше хостингов Плюс для хостеров FreeBSD , т.к. Zend прекратила поддержку этой платформы
  • 19. Цели нагрузочного тестирования платформы Проверка и оптимизация конфигурации серверного программного обеспечения (цель – получить идеальное веб-окружение ; тесты проводились на «1С-Битрикс: Веб-окружение» версии 1.6, по результатам выпущена версия 2.0). Оценка максимальной производительности, которую способны выдерживать типовые редакции на выделенном оборудовании. Влияние опций и модулей продукта на производительность. Оценка стабильности при максимальных нагрузках при проведении 24-часовых тестов. Выявление ограничений конфигурации, определение методов дальнейшего масштабирования и оптимизации. Проверка продукта в различных сценариях
  • 20. Нагрузочное тестирование Нагрузочное тестирование было проведено в 2010 году совместно с компаниями «Онтико» и .masterhost. Тестировалась версия 9.5 ( MySQL) , редакции «Старт» и «Бизнес». На типовом оборудовании 2010 года – на выделенном сервере HP ProLiant DL120 : 8 511 355 хитов в сутки на редакции «Бизнес» 12 420 746 хитов в сутки на редакции «Старт» 85 103 456 хитов в сутки на редакции «Старт» (с включенной опцией «HTML кеширование»)
  • 21.
  • 22. Используемое оборудование Для тестовых установок «1С-Битрикс: Управление сайтом» использовался выделенный сервер «EuroDedicated Универсальный» , предоставленный компанией . masterhost : HP ProLiant DL120, 1×Intel Quad Core X3210, 1×1TB SATA, 8GB RAM Обычный заурядный сервер, доступный каждому! Аренда: 5 000 руб. / мес.
  • 23. Профили пользователей 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
  • 24. Профили пользователей Non-Authorized users Путь по сайту Всего стр. в сессии 22: главная страница / 7 каталог /catalog/ 1 вид товара /catalog/furniture/XXX/YYY/ 6 категории товаров /catalog/furniture/XXX/ 4 информация /about/ 1 информационный раздел /about/ZZZ/ 3
  • 26. Самые частые ошибки Отключенное автокеширование Явно выключенное кеширование компонентов Собственные компоненты не поддерживают кеширование
  • 27. Рекомендации разработчикам В шаблонах сайта используйте стандартные компоненты меню с кешированием Разрабатывая сайт, используйте либо стандартные, либо собственные индивидуальные компоненты Используйте API продукта, крайне нежелательны прямые запросы к базе данных В настройках компонентов указывайте значение кеширования «Авто+Управляемое» с большим временем кеширования В режиме Автокеширования компоненты должны выполнять минимум запросов к базе данных (в идеале – 0) Не выбирайте неиспользуемые данные, чтобы не создавать неэффективные большие файлы кеша компонентов
  • 28. Анализ производительности системы Выполненный указанный сценарий решает проблемы 97% сайтов ! И только для 2-3% требуется детальный анализ логики проекта, запросов, анализ сложной бизнес-логики. Шаг 1: Анализ конфигурации Шаг 2: Анализ конфигурации «1С-Битрикс» Шаг 3: Предварительная оценка качества разработки Шаг 4: Итоговый анализ показателей
  • 29. Замеры на вашей конфигурации Эталонные замеры производительности, которые используются «Монитором производительности», выполнены на виртуальной машине.
  • 30. Замеры на вашей конфигурации
  • 31. Замеры на вашей конфигурации
  • 32. Режим отладки - время создания страницы
  • 33. Варианты масштабирования до 10.0 Разделение на два сервера: веб-сервер + база данных. Увеличение мощности оборудования (чем мощнее – тем дороже ; рост стоимости не пропорционален). Выделение кеша на один внешний сервер через memcached. Переход на Oracle ( минимальная лицензия +5000$ за процессор ) . Создание Oracle RAC (Real Application Cluster). Проект – около 150 000 $ ( оборудование + лицензия + «общая полка»). Очень мало специалистов. Для большинства клиентов производительности достаточно , но не решены проблемы отказоустойчивости, резервирования, сетевой доступности.
  • 34. Нагрузочное тестирование Нагрузочное тестирование - обязательный этап в завершении настройки. Нагрузочное тестирование является важнейшей процедурой подготовки крупного проекта к открытию . Нагрузочное тестирование позволяет определить предел работоспособности созданного проекта именно на выбранном оборудовании . Зачастую, простые корректировки конфигурации могут ускорить проект в 5-10 раз и сделать его устойчивым к стрессовым нагрузкам.
  • 35. Проекты с высокой нагрузкой
  • 36. Подробно о производительности: http://www.1c-bitrix.ru/products/cms/performance /
  • 37. Спасибо за внимание! Вопросы? :) Александр Демидов [email_address] +7 ( 915 ) 201-1500 @demidov http://www.1c-bitrix.ru