Оптимизация Битрикс: Управление сайтом Максим Смирнов ведущий разработчик компании «Битрикс»

Презентация:



Advertisements
Похожие презентации
Принципиальные изменения в версии 6.0. Оптимизация. Производительность продукта Сергей Рыжиков Генеральный директор ООО «1С-Битрикс»
Advertisements

Аспекты увеличения быстродействия «1С-Битрикс: Управление сайтом» на виртуальном хостинге Артём Рябинков 1С-Битрикс.
Рекомендации по работе со службой технической поддержки Шаромов Денис руководитель отдела техподдержки.
Как улучшить производительность проекта за три шага Шаромов Денис руководитель отдела техподдержки.
Композит – ваш сайт не тормозит Антон Герасимюк Ведущий разработчик, 1C-Битрикс Партнерская конференция 2015.
Что клиенты просят доделать после партнеров Евгений Потапов ITSumma.
БЭСТ Дизайнер проектов Введение Концепции Основные понятия.
Информационные блоки+ Битрикс: Управление сайтом Максим Смирнов ведущий разработчик компании «Битрикс»
Joomla! Система управления контентом с открытым исходным кодом.
Платформа разработки высоконагруженного веб-сервиса: инструменты отладки и возможности масштабирования Александр Демидов руководитель направления арендных.
Александр Демидов «1 С-Битрикс» Производительность Виртуальная машина 3.0 Инструменты отладки Летняя партнерская конференция «1 С-Битрикс» 2011.
Александр Демидов «1С-Битрикс» Производительность проектов на платформе «1С-Битрикс»
Разработка Веб - проектов, от требований заказчика до запуска. Прозрачность разработки как средство формирования ожиданий заказчика.
Компоненты 2.0 1C-Битрикс: управление сайтом Артем Рябинков к.т.н, руководитель отдела партнерских и корпоративных продаж Компания «Битрикс»
Разгони свой сайт Лекция 9: Практическое приложение Мациевский Николай 1 / 27 webo.in.
PHP на Windows Гайдар Магдануров twitter.com/gaidar
Экспертиза производительности Типовые ошибки разработчиков Шаромов Денис руководитель отдела техподдержки «1С-Битрикс»
Построение системного ландшафта для высоко нагруженного проекта ООО «Ленвендо-Софт» Гаврилов Виталий Технический директор тел.: +7 (812)
Эрмитаж. Новая концепция интерфейса платформы «1С-Битрикс 9.5»
Инструкция по развертыванию и настройке системы дистанционного обучения Moodle.
Транксрипт:

Оптимизация Битрикс: Управление сайтом Максим Смирнов ведущий разработчик компании «Битрикс»

Проблематика Виртуальный хостинг Высокая конкуренция за кеш БД вынесена на отдельный сервер Выделенный сервер Высокая конкуренция блокировок в БД

Цель Увеличение производительности Битрикс: Управление сайтом: уменьшение количества запросов ядра продукта оптимизация php кода ядра уменьшение количества запросов в модулях оптимизация компонент

Инструменты xdebug отладчик, представляющий собой расширение php. Kcachegrind инструмент, визуально представляющий информацию, собранную отладчиком $DBDebugToFile переменная, определяемая в файле dbconn.php show_page_exec_time=Y&show_include_exec_time=Y show_sql_stat=Y встроенный в продукт инструментарий для профилирования и отладки запросов к БД ab утилита, входящая в состав популярного веб сервера Apache.

Интерактивный отладчик show_page_exec_time=Y show_include_exec_time=Y show_sql_stat=Y

Платформа Intel Celeron 2.5GHz / 512Mb RAM ОС: Debian sid БД: Mysql (стандартная сборка/пакет deb из репозитария) Веб сервер: Apache (стандартная сборка/пакет deb из репозитария) PHP4/PHP5 APC: (сборка из pecl со всеми опциями по умолчанию) Битрикс: Управление сайтом демоверсия в исходных кодах 5.0.9

Процесс оптимизации Создание нагрузки Анализ выполнения Внесение изменений Повторное создание нагрузки Сравнение результатов Принятие решения о внесении изменений

Создание нагрузки: ab ab -n 100 -c 5 This is ApacheBench, Version dev apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, Copyright (c) The Apache Software Foundation, Benchmarking (be patient).....done Server Software: Apache/ Server Hostname: Server Port: 4004 Document Path: /about/index.php Document Length: bytes Concurrency Level: 5 Time taken for tests: seconds Complete requests: 100 Failed requests: 0 Write errors: 0 Total transferred: bytes HTML transferred: bytes Requests per second: [#/sec] (mean) Time per request: [ms] (mean) Time per request: [ms] (mean, across all concurrent requests) Transfer rate: [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: Processing: Waiting: Total: Percentage of the requests served within a certain time (ms) 50% % % % % % % % % 1053 (longest request)

Анализ выполнения: xdebug

Процесс оптимизации Создание нагрузки Анализ выполнения Внесение изменений Повторное создание нагрузки Сравнение результатов Принятие решения о внесении изменений

Уменьшение количества запросов ядра продукта Статическая страница Запросы ядра продукта к базе данных Оптимизация за счет изменения программной логики Оптимизация за счет кэширования

Управляемый кэш Объекты кеширования – словарные таблицы Сброс кеша – происходит автоматически Настройка – посредством набора констант Хранение - /bitrix/managed_cache Ручная очистка – на странице настройки главного модуля define("CACHED_b_lang", 3600); define("CACHED_b_option", 3600); define("CACHED_b_lang_domain", 3600); define("CACHED_b_site_template", 3600); define("CACHED_b_event", 3600); define("CACHED_b_agent", 3660); define("CACHED_menu", 3600); define("CACHED_b_file", false); define("CACHED_b_file_bucket_size", 100);

Агенты и события Агенты Отправка событий Блокировка Особенности кеширования b_event b_agent

b_file Класс Cfile Таблица b_file Функция ShowImage select * from b_file where ID= define("CACHED_b_file", 3600); define("CACHED_b_file_bucket_size", 100);

Управляемый LRU кеш Кеширование данных с большой вариативностью Ограничение на объем кеша

Оптимизация php кода Оценка покрытия кода ядра Уменьшение числа системных вызовов Уменьшение числа вызовов функций Вынесение инвариант за пределы цикла Перестановка выражений в условиях Кэширование вычислений Наиболее ресурсоемкие функции переписаны полностью с сохранением бизнес-логики

Преимущество PHP5 Поддержка autoload Использование прекомпиляторов

Оптимизация модулей Интернет-магазин Опросы, голосования Блоги Валюты Техподдержка Торговый каталог Реклама, баннеры

Оптимизация модулей

Оптимизация модуля статистики Оптимизация кода Уменьшение количества запросов Индексы Поддержка autoload

Сравнительное тестирование

Рекомендации разработчикам Использование интерактивного встроенного отладчика Отладка на самых ранних стадиях разработки Нагрузочное тестирование на реальных объемах Администрирование базы данных

Дальнейшие планы Оптимизация Развитие встроенного отладчика Создание системы мониторинга отслеживания медленных Страниц Компонент Запросов