Александр Демидов «1С-Битрикс» Производительность Виртуальная машина 3.0 Инструменты отладки Летняя партнерская конференция «1С-Битрикс» 2011
Почему сайт должен быть всегда доступен? Почему сайт должен быть быстрым? Клиенты и их лояльность (сайт недоступен – потеряны заказы, новый клиент - больше не вернется). «Избалованность» клиентов быстрыми ajax- интерфейсами Индексация сайта поисковыми роботами Финансовые потери во время рекламных компаний Стоимость контекстной рекламы
Производительность проекта Производительность проекта зависит от трех составляющих: Платформа и ее настройки, которые влияют на производительность (авто кэширование, html-кеш, параметры поиска) Конфигурация сервера или настройки хостинга и его общая производительность Качество разработки, интеграции с платформой, которая выполняется веб- разработчиком
Ошибки и проблемы на любом из трех этапов вызывают неудовлетворенность клиента относительно всего проекта! Тормозной хостинг! Ужасная система! Разработчики ничего не умеют!
1. Платформа «1С-Битрикс»
Производительность платформы Настройки платформы «1С-Битрикс», которые влияют на производительность: Автокэширование компонентов HTML кеш Управляемый кеш Варианты хранения кеша Варианты хранения сессий Использование различных модулей Использование закодированных модулей
История производительности платформы 2005 год – производительность стала существенной задачей для разработки год – появление инструментов отладки SQL-запросов. Cистемная работа над производительностью продукта год – первое нагрузочное тестирование с QSOFT (1.5 млн. хитов в сутки на редакции «Бизнес», 6 млн. – на редакции «Старт») годы – развернуто 4 конфигурации Oracle RAC с 4 серверами год – «монитор производительности» во всех редакциях продукта годы – выпущены «1С-Битрикс: Виртуальная машина» и «1С- Битрикс: Веб-окружение» – сертификация хостинг-провайдеров год – рост производительности – на 430%! Новые нагрузочные тесты: 8.5 млн. хитов – «Бизнес», 12.4 млн. – «Старт», 85 млн. – «HTML кеш» год – модуль «Веб-кластер»
2. Хостинг / Конфигурация сервера
Конфигурация сервера Ошибки конфигурирования по-прежнему являются одним из основных препятствием для достижения максимальной производительности. Типовые ошибки/проблемы/недостатки конфигурации: PHP как CGI open_basedir Не установлен прекомпилятор PHP Недостаточно памяти предкомпилятору Медленная файловая система Отсутствует FrontEnd (nginx) ngnix есть, но всю статику запрашивает у Apache Не отрегулировано значение MaxClients в Apache И т.д.
Очень мало правильных конфигураций Даже наличие максимально полной документации и практических рекомендаций по настройке серверов не решает проблему производительности!
1С-Битрикс: Виртуальная машина и Веб-окружение Виртуальная машина эмулирует работу реального сервера. bitrix-env.rpm – пакет для установки и настройки Linux окружения и продуктов «1С-Битрикс»: mysql-server 5.1. х httpd-server (Apache 2.2.х) zend-server-ce-php mod-php nginx memcached Поддерживаемые платформы: Fedora 8-14 (i386) CentOS 5 (i386, x86_64) Red Hat Enterprise Linux 5 (i386, x86_64) Установка веб-окружения: # wget # chmod +x bitrix-env.sh #./bitrix-env.sh
1С-Битрикс: Виртуальная машина и Веб-окружение Минимальные расходы на развертывание оптимальной конфигурации Наилучшая производительность Сбалансированность под большие нагрузки Автоматическое конфигурирование под ресурсы сервера Проверено нагрузочными тестами Проверено отделом безопасности Оптимизировано для работы корпоративного портала Инсталлятор продуктов «1С-Битрикс» Бесплатно! Экономит часов администрирования.
Изменения в версии 3.0 Стандартный nginx из пакетов Запрет на удаленное подключение пользователя root Защита от перебора паролей посредством sshguard Дополнительные предустановленные пакеты mc, csync2, и.т.д. Возможность внесения изменений в настройки сервера без отключения сервиса bvat Поддержка веб-кластера «1С-Битрикс»
Масштабирование и Веб-кластер
Поддержка Веб-кластера «1С-Битрикс» Быстрый запуск кластера Автоматическая синхронизация файлов настроек и файлов сайта между узлами кластера Добавление новых узлов в кластер Изменение режима работы узла кластера с slave на master и с master на slave Выделение балансировщика нагрузки на отдельный узел кластера Тестирование настроек кластера
Master нода MySQL (master) load balancer (nginx) Web Application nginx (front end) apache (back end) MySQL master сервер memcached Веб сервер nginx и apache балансировка нагрузки между узлами кластера, на базе nginx Синхронизация файлов настроек между узлами кластера Синхронизация файлов продукта между узлами кластера Является точкой подключения к кластеру новых узлов Является точкой настройки кластера Может сменить свою роль на slave csync2 memcached
Slave нода MySQL slave сервер memcached Веб сервер nginx и apache Синхронизация файлов настроек между узлами кластера Синхронизация файлов продукта между узлами кластера Может взять на себя роль master узла Slave нода MySQL (slave) Web Application nginx (front end) apache (back end) csync2 memcached
Этапы запуска веб-кластера 1. Установка веб-окружения на главный узел веб-кластера 2. Установка непосредственно продукта «1С-Битрикс» 3. Добавление новых узлов в кластер через меню веб-окружения 4. Добавление новой базы MySQL и memcached сервера в настройках модуля «Веб-кластер» Решенные задачи 1. Отказоустойчивость сайта 2. Рост производительности 3. Наличие резервной копии в «реальном времени»
3. Веб-разработка
Самые частые ошибки Отключенное авто кэширование Явно выключенное кэширование компонентов Собственные компоненты не поддерживают кэширование Плохая работа с API продута, прямые запросы в базу Неэффективные запросы, выборки неиспользуемых данных – в итоге большие файлы кеша компонентов
Анализ производительности системы Выполненный указанный сценарий решает проблемы 97% сайтов! И только для 2-3% требуется детальный анализ логики проекта, запросов, анализ сложной бизнес-логики. Шаг 1: Анализ конфигурации Шаг 2: Анализ конфигурации «1С-Битрикс» Шаг 3: Предварительная оценка качества разработки Шаг 4: Итоговый анализ показателей
Замеры на вашей конфигурации Эталонные замеры производительности, которые используются «Монитором производительности», выполнены на виртуальной машине.
Замеры на вашей конфигурации
Режим отладки - время создания страницы
Проекты с высокой нагрузкой
Подробно о производительности: Веб-кластер: Виртуальная машина: Веб-окружение:
Спасибо за внимание! Вопросы? :) Александр Демидов +7 (915)