Производительность, виртуальная машина 3.0, инструменты

advertisement
Летняя партнерская конференция «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
Спасибо за внимание!
Вопросы? :)
Александр Демидов
demidov@1c-bitrix.ru
+7 (915) 201-1500
@demidov
http://www.1c-bitrix.ru
Download