Летняя партнерская конференция «1С-Битрикс» 2011 Производительность Виртуальная машина 3.0 Инструменты отладки Александр Демидов «1С-Битрикс» Почему сайт должен быть всегда доступен? Почему сайт должен быть быстрым? • Клиенты и их лояльность (сайт недоступен – потеряны заказы, новый клиент - больше не вернется). • «Избалованность» клиентов быстрыми ajaxинтерфейсами • Индексация сайта поисковыми роботами • Финансовые потери во время рекламных компаний • Стоимость контекстной рекламы Производительность проекта Производительность проекта зависит от трех составляющих: • Платформа и ее настройки, которые влияют на производительность (автокеширование, html-кеш, параметры поиска) • Конфигурация сервера или настройки хостинга и его общая производительность • Качество разработки, интеграции с платформой, которая выполняется вебразработчиком Ошибки и проблемы на любом из трех этапов вызывают неудовлетворенность клиента относительно всего проекта! Тормозной хостинг! Ужасная система! Разработчики ничего не умеют! 1. Платформа «1С-Битрикс» Производительность платформы Настройки платформы «1С-Битрикс», которые влияют на производительность: • Автокеширование компонентов • HTML кеш • Управляемый кеш • Варианты хранения кеша • Варианты хранения сессий • Использование различных модулей • Использование закодированных модулей История производительности платформы • 2005 год – производительность стала существенной задачей для разработки. • 2007 год – появление инструментов отладки SQL-запросов. Cистемная работа над производительностью продукта. • 2007 год – первое нагрузочное тестирование с QSOFT (1.5 млн. хитов в сутки на редакции «Бизнес», 6 млн. – на редакции «Старт»). • 2008-2010 годы – развернуто 4 конфигурации Oracle RAC с 4 серверами. • 2009 год – «монитор производительности» во всех редакциях продукта. • 2009-2010 годы – выпущены «1С-Битрикс: Виртуальная машина» и «1СБитрикс: Веб-окружение». • 2008-2011 – сертификация хостинг-провайдеров. • 2010 год – рост производительности – на 430%! Новые нагрузочные тесты: 8.5 млн. хитов – «Бизнес», 12.4 млн. – «Старт», 85 млн. – «HTML кеш». • 2011 год – модуль «Веб-кластер» 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 http://dev.1c-bitrix.ru/yum/bitrix-env.sh # chmod +x bitrix-env.sh # ./bitrix-env.sh 1С-Битрикс: Виртуальная машина и Веб-окружение • Минимальные расходы на развертывание оптимальной конфигурации • Наилучшая производительность • Сбалансированность под большие нагрузки • Автоматическое конфигурирование под ресурсы сервера • Проверено нагрузочными тестами • Проверено отделом безопасности • Оптимизировано для работы корпоративного портала • Инсталлятор продуктов «1С-Битрикс» Бесплатно! Экономит 200-300 часов администрирования. Изменения в версии 3.0 • Стандартный nginx из пакетов • Запрет на удаленное подключение пользователя root • Защита от перебора паролей посредством sshguard • Дополнительные предустановленные пакеты mc, csync2, и.т.д. • Возможность внесения изменений в настройки сервера без отключения сервиса bvat • Поддержка веб-кластера «1С-Битрикс» Масштабирование и Веб-кластер Поддержка Веб-кластера «1С-Битрикс» Быстрый запуск кластера Автоматическая синхронизация файлов настроек и файлов сайта между узлами кластера Добавление новых узлов в кластер Изменение режима работы узла кластера с slave на master и с master на slave Выделение балансировщика нагрузки на отдельный узел кластера Тестирование настроек кластера Master нода Master нода MySQL (master) load balancer (nginx) csync2 memcached Web Application nginx (front end) apache (back end) MySQL master сервер memcached Веб сервер nginx и apache балансировка нагрузки между узлами кластера, на базе nginx Синхронизация файлов настроек между узлами кластера Синхронизация файлов продукта между узлами кластера Является точкой подключения к кластеру новых узлов Является точкой настройки кластера Может сменить свою роль на slave Slave нода Slave нода MySQL (slave) csync2 memcached Web Application nginx (front end) apache (back end) MySQL slave сервер memcached Веб сервер nginx и apache Синхронизация файлов настроек между узлами кластера Синхронизация файлов продукта между узлами кластера Может взять на себя роль master узла Этапы запуска веб-кластера 1. Установка веб-окружения на главный узел веб-кластера 2. Установка непосредственно продукта «1С-Битрикс» 3. Добавление новых узлов в кластер через меню веб-окружения 4. Добавление новой базы MySQL и memcached сервера в настройках модуля «Веб-кластер» Решенные задачи 1. Отказоустойчивость сайта 2. Рост производительности 3. Наличие резервной копии в «реальном времени» 3. Веб-разработка Самые частые ошибки • Отключенное автокеширование • Явно выключенное кеширование компонентов • Собственные компоненты не поддерживают кеширование • Плохая работа с API продута, прямые запросы в базу • Неэффективные запросы, выборки неиспользуемых данных – в итоге большие файлы кеша компонентов Анализ производительности системы Шаг 1: Анализ конфигурации Шаг 2: Анализ конфигурации «1С-Битрикс» Шаг 3: Предварительная оценка качества разработки Шаг 4: Итоговый анализ показателей Выполненный указанный сценарий решает проблемы 97% сайтов! И только для 2-3% требуется детальный анализ логики проекта, запросов, анализ сложной бизнес-логики. Замеры на вашей конфигурации Эталонные замеры производительности, которые используются «Монитором производительности», выполнены на виртуальной машине. Замеры на вашей конфигурации Замеры на вашей конфигурации Замеры на вашей конфигурации Режим отладки - время создания страницы Режим отладки - время создания страницы Проекты с высокой нагрузкой Подробно о производительности: http://www.1c-bitrix.ru/products/cms/performance/ Веб-кластер: http://www.1c-bitrix.ru/products/cms/features/webcluster.php Виртуальная машина: http://www.1c-bitrix.ru/products/vmbitrix/ Веб-окружение: http://www.1c-bitrix.ru/products/env/#tab-rpm-link Спасибо за внимание! Вопросы? :) Александр Демидов [email protected] +7 (915) 201-1500 @demidov http://www.1c-bitrix.ru