Top Banner
Аудит производительности изнутри. Как самому научиться следить за производительностью сайта Евгений Потапов ITSumma Александр Лыженков Aero Партнерская конференция «1С-Битрикс»
83

Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Jul 27, 2015

Download

Internet

ITSumma
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Евгений ПотаповITSumma

Александр ЛыженковAero

Партнерская конференция «1С-Битрикс»

Page 2: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Евгений Потаповгенеральный директор компании ITSumma

• Круглосуточное администрирование и техническая поддержка

веб-сайтов

• На поддержке CarambaTV, Наше Радио, Aero, Бюро Пирогова,

ПостНаука, Marketium, Travelata, AlterGeo, Invisible, VseMayki,

AcademMedia

• 100 миллионов уникальных посетителей в сутки

• Штат – 50 человек

Партнерская конференция 2015

#bitrixconf2015

Page 3: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Александр Лыженковтехнический директор компании Aero Creative Agency

• Специализируемся на создании, поддержке и развитии

технологичных e-commerce проектов. Выводим крупнейшие

ритейл-бренды в онлайн.

• Среди наших клиентов: «Евросеть», «Мегафон-Ритейл», ЦУМ,

«ЦентрОбувь», «Технопарк», «Техносила», «АльфаСтрахование»,

СГ МСК, «1С», «Уральские авиалинии», Yota Devices, Forex Club.

• Постоянный штат – 20 человек

Партнерская конференция 2015

#bitrixconf2015

Page 4: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Типичные проблемы поддержки• Долгое время ответа веб-сайта.

• Критическое потребление ресурсов сервера (CPU, диски)

• Рост нагрузки при скачках посещаемости

• Проблемы при выкладке нового кода

• Проблемы с «железом»

Партнерская конференция 2015

#bitrixconf2015

Page 5: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Содержание• Когда пришло время делать аудит?

• Как проводить аудит? Какой есть инструментарий?

• Пример проведения аудита

Партнерская конференция 2015

#bitrixconf2015

Page 6: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Когда нужно делать аудит?два «полюса» в разработке

• Сначала все сделаем и «зарелизим», а там – посмотрим

• Заранее спланировать код так, чтобы он был высокопроизводительным

Партнерская конференция 2015

#bitrixconf2015

Page 7: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Партнерская конференция 2015

#bitrixconf2015

Сначала все сделаем…

Page 8: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Партнерская конференция 2015

#bitrixconf2015

…а там посмотрим

Page 9: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Партнерская конференция 2015

#bitrixconf2015

…А может детально проработать каждый момент?

Page 10: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

«Быстро все сделаем»типичные проблемы

• Неоптимальный код на основе которого разработано много элементов сайта

• «Бомба замедленного действия» - неожиданное падение

производительности в процессе эксплуатации

• Плавное увеличение времени ответа с каждой новой «фичей»

Партнерская конференция 2015

#bitrixconf2015

Page 11: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Неоптимальный код на основе которого разработано много элементов сайта

Партнерская конференция 2015

#bitrixconf2015

Разработанная функциональность используется для

последующих доработок, и тогда, когда приходит

необходимость оптимизации кода – код уже очень не просто

изменить

Page 12: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Партнерская конференция 2015

#bitrixconf2015

«Бомба замедленного действия»Посещаемость выросла в 5 раз, а нагрузка на процессор – в 12

Page 13: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Партнерская конференция 2015

#bitrixconf2015

Время ответа незаметно увеличивается с каждой новой «фичей», пока не становится критическим

Page 14: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Как попытаться избежать проблем?Итеративный подход к аудиту

• Разрабатываем часть функциональности сайта

• Проводим аудит

• Дорабатываем самые «тормозные» моменты

• Разрабатываем дальше

• Проводим аудит

Партнерская конференция 2015

#bitrixconf2015

Page 15: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит производительности – это не так сложно.

Состоит из:

• Аудита инфраструктуры

(Аудит серверного ПО и «железа», мониторинг)

• Аудита кода

(С использованием встроенного инструментария 1С-Битрикс)

• Аудита фронт-энда, скорость сайта

(Анализ времени загрузки страницы)

Партнерская конференция 2015

#bitrixconf2015

Page 16: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыКогда и как применять

• Цель – убедиться в том, что причина возможных проблем – не

«экосистема» сервера

• Чаще всего – в боевой эксплуатации.

• Часть 1: первичный анализ сервера

• Часть 2: мониторинг в течении продолжительного времени

Партнерская конференция 2015

#bitrixconf2015

Page 17: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыЧто анализируем? Факторы влияющие на время ответа сайта

• Специфика настройки веб-сервера.

• Нагрузка на процессор

• Нагрузка на дисковую подсистему

• Проблемы с работой базы данных

• Проблемы с сетевыми интерфейсами

Партнерская конференция 2015

#bitrixconf2015

Page 18: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыПервичный анализ.

Партнерская конференция 2015

#bitrixconf2015

• Какой хостинг использован?

Hetzner/FastVPS? Надо срочно проверить SMART состояние дисков.

• Каково значение TTL в DNS?

Оптимально <900 секунд. Больше – проблемы в случае срочного переезда.

Шаг 1. Анализ хостинга/DNS

Page 19: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыПервичный анализ.

Партнерская конференция 2015

#bitrixconf2015

• Какова частота процессора? Сколько ядер?

Если нужно быстро отдавать страницу пользователю – важна частота (>2.5 ггц)

Если нужно отдавать сайт многим одновременным пользователям важно

число ядер (как минимум >=4)

Шаг 2. Анализ аппаратной конфигурации - Процессор

Page 20: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыПервичный анализ.

Партнерская конференция 2015

#bitrixconf2015

• Каков тип жестких дисков – SATA или SSD?

Есть возможность поставить SSD? Если да – запланировать использование SSD

для базы данных.

Шаг 3. Анализ аппаратной конфигурации – Жесткие диски

Page 21: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыПервичный анализ.

Партнерская конференция 2015

#bitrixconf2015

Шаг 4. Анализ ПО сервера. Инструменты – проверка системы

Page 22: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыПервичный анализ.

Партнерская конференция 2015

#bitrixconf2015

• Open files limit (https://rtcamp.com/tutorials/linux/increase-open-files-limit/)

• PHP – убедиться что есть opcache (apc/zend opcache)

• PHP – убедиться, что память опкэш-акселератора не заполнена

• Nginx+apache? Убедиться в том, что статика отдается с nginx

• Nginx+apache? Убедиться в том, что стоит оптимальное количество worker

• Только apache? Поставить nginx.

• PHP-FPM? Проверить лимиты max_children

Шаг 5. Анализ настроек операционной системы и веб-части

Page 23: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыПервичный анализ.

Партнерская конференция 2015

#bitrixconf2015

Шаг 6. Настройки – Производительность – Сервер БД

Page 24: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыПервичный анализ.

Партнерская конференция 2015

#bitrixconf2015

Шаг 7. Дополнительные настройки бд

• Какова версия MySQL? Минимум 5.1 идеально >=5.5

• Таблицы – обязательно InnoDB

• innodb_file_per_table должен быть включен.

• innodb-flush-log-at-trx-commit выставить в 2

• Сервер под нагрузкой? Если да - Посчитать рекомендуемый innodb_log_size

(http://www.percona.com/blog/2008/11/21/how-to-calculate-a-good-innodb-log-file-size/)

Page 25: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыПервичный анализ. Bonus-track

Партнерская конференция 2015

#bitrixconf2015

• Убедиться в том, что создание бэкапов работает

• Убедиться в том, что бэкапы создаются на внешний сервер

• Убедиться в том, что из бэкапов можно восстановиться

• Убедиться в том, что на сервере есть RAID контроллер

• Убедиться в том, что массив не RAID-0

• Убедиться в том, что массив не находиться в аварийном состоянии

Page 26: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыМониторинг в течении 24-48 часов

Партнерская конференция 2015

#bitrixconf2015

• Время ответа страниц сайта

• Число запросов в секунду на веб-сервер

• Нагрузка на процессор/Load Average

• Нагрузка на дисковую подсистему

• Работа web-сервера

• Работа MySQL

Page 27: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыТипичные примеры «серверных проблем» – код не виноват1. Периодическая нагрузка создаваемая кроном или агентами

Партнерская конференция 2015

#bitrixconf2015

Проблема: «Сайт иногда работает очень медленно».

Page 28: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыТипичные примеры «серверных проблем» – код не виноват1. Периодическая нагрузка создаваемая кроном или агентами

Партнерская конференция 2015

#bitrixconf2015

Число запросов при этом не растет.

Page 29: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыТипичные примеры «серверных проблем» – код не виноват1. Периодическая нагрузка создаваемая кроном или агентами

Партнерская конференция 2015

#bitrixconf2015

Причина: бэкап в кроне, создающий высокую нагрузку на диск

Page 30: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыТипичные примеры «серверных проблем» – код не виноват2. Скорость на сетевом интерфейсе упирается в «потолок»

Партнерская конференция 2015

#bitrixconf2015

Новостной сайт. Проблема: резко замедляется скорость сайта при выходе новости.

Page 31: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыТипичные примеры «серверных проблем» – код не виноват2. Скорость на сетевом интерфейсе упирается в «потолок»

Партнерская конференция 2015

#bitrixconf2015

Причина: пропускная способность заканчивается при регулярном выходе новостей

Page 32: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыТипичные примеры «серверных проблем» – код не виноват3. Хост-машина забирает ресурсы

Партнерская конференция 2015

#bitrixconf2015

Проблема: неожиданно начинает тормозить весь сервер

Page 33: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыТипичные примеры «серверных проблем» – код не виноват3. Хост-машина забирает ресурсы

Партнерская конференция 2015

#bitrixconf2015

Причина: виртуальный сервер с «прожорливыми соседями»

Page 34: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыСимптомы проблем в коде

Партнерская конференция 2015

#bitrixconf2015

Время ответа увеличилось в момент выкладки кода и осталось неизменным

Page 35: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит инфраструктурыСимптомы проблем в коде

Партнерская конференция 2015

#bitrixconf2015

Время ответа в целом очень большое

Page 36: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаМетодика проведения

• Первичный анализ

монитор производительности на боевом сервере

• Изоляция проекта на «стенде»

Позволит провести анализ кода в ненагруженной экосистеме

• Постраничный поиск «долгих» компонентов + исследование кода

Детальный анализ самых медленных страниц

Партнерская конференция 2015

#bitrixconf2015

Page 37: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаПервичный анализ – монитор производительности на боевом сервере

• Цель: понять как работает сайт для большого числа пользователей

• Какие страницы/компоненты создают суммарно наибольшую

нагрузку на сервер

• Что можно оптимизировать в первую очередь, а что – впоследствии?

Партнерская конференция 2015

#bitrixconf2015

Page 38: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаПервичный анализ – монитор производительности на боевом сервере

• Убеждаемся что нет внешних причин для

«тормозов»

• Настройки – Настройки продукта – Настройки

модулей – Монитор производительности

• Вести журнал SQL запросов

• Сохранять стек вызова SQL запросов

Партнерская конференция 2015

#bitrixconf2015

Page 39: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаМонитор производительности - страницы

Позволяет найти:

• Страницы которые создают максимальную

нагрузку на процессор (если

оптимизировать – нагрузка на сервер будет

меньше)

• Страницы которые дольше всего грузятся

пользователю («скорость сайта» выше)

Партнерская конференция 2015

#bitrixconf2015

Page 40: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаМонитор производительности - страницы

Как включить:

• Фильтр – «+» - административный раздел

«нет»

• Для скорости загрузки страницы: страница-

время (среднее)

• Для снижения нагрузки на процессор

страница-время (сумма)

Партнерская конференция 2015

#bitrixconf2015

Page 41: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаМонитор производительности - компоненты

Позволяет найти:

• Самые «тяжелые» компоненты

• Посмотреть самые тяжелые

запросы в них (перейдя по клику на

число запросов)

• Найти откуда запрос вызывается (в

разделе «SQL запросы»)

Партнерская конференция 2015

#bitrixconf2015

Page 42: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаМонитор производительности – SQL запросы

Позволяет найти:

• Самые «тяжелые» запросы

• Компоненты, откуда они вызваны

• Непосредственное место вызова в

компонентах

• План выполнения запросов

Партнерская конференция 2015

#bitrixconf2015

Page 43: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаМонитор производительности – SQL запросы

Наведение мыши на SQL-запрос при

включенной в настройках Монитора

записи стэка вызовов покажет стек-

трейс вызова SQL запроса (места в

компоненте, откуда он вызывается)

Партнерская конференция 2015

#bitrixconf2015

Page 44: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаИзоляция кода на стенде

Партнерская конференция 2015

#bitrixconf2015

Цель: проверить работу кода на

ненагруженной инфраструктуре

• Отдельная виртуальная машина 1С-Битрикс

• Опционально: X-Windows с удобным

редактором кода

• Опционально: Установленный XHProf для

профилирования PHP

Page 45: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаИзоляция кода на стенде

Партнерская конференция 2015

#bitrixconf2015

• Rsync директории c 1С-Битрикс (и исключением

кэша, картинок и других больших файлов)

• Перенос БД

• До открытия сайта: переведение агентов на крон

SQL-запросом

• Ссылка на виртуальную машину (подробные

инструкции и больше материалов – позже)

www.itsumma.ru/bitrixtools

Page 46: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаПостраничный поиск долгих компонентов

Партнерская конференция 2015

#bitrixconf2015

Инструменты отладки

• Позволяет легко проанализировать

эффективность кэша

• Позволяют проанализировать структуру

выполнения компонентов на странице по

времени

Page 47: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаПостраничный поиск долгих компонентов

Партнерская конференция 2015

#bitrixconf2015

Поиск неработающего кэша

• Обходим все основные страницы

• Сбрасываем кэш, но не отключаем его в

инструментах отладки

• Если кэш работает эффективно – время

работы страницы должно быть в

приемлемых значениях (как минимум

<1.0с) и ниже «некэшированной версии»

Page 48: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаПостраничный поиск долгих компонентов

Партнерская конференция 2015

#bitrixconf2015

Поиск долгих компонентов

• Обходим все основные страницы

• Отключаем кэш в инструментах отладки

• Смотрим за структурой вызовов

компонентов

Page 49: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаПостраничный поиск долгих компонентов

Партнерская конференция 2015

#bitrixconf2015

Поиск долгих компонентов

• Обходим все основные страницы

• Отключаем кэш в инструментах отладки

• Смотрим за структурой вызовов

компонентов

Page 50: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит кодаXHProf

Партнерская конференция 2015

#bitrixconf2015

Детальный аудит PHP-кода

• Профилировщик от Facebook

• https://github.com/phacility/xhprof

• Удобная процедура исследования кода

• Стоит использовать для анализа кода, когда проблема

не на стороне долгого обращения к базе данных

Page 51: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Page 52: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Page 53: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Page 54: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Page 55: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Page 56: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Page 57: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 1 – проверяем сервер

• Ставим сервер на мониторинг (24-48 часов)

• Ставим на мониторинг внешнее время ответа веб-

страниц сайта

• Смотрим все базовые настройки операционной системы

• Смотрим не «развалился» ли RAID, работают ли бэкапы

Page 58: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 2 – копируем проект на «стенд»

• Rsync кода

• Перенос БД

• Выключение агентов

Page 59: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 3 – включаем монитор

производительности на боевом сервере

• Вести журнал SQL вызовов

• Сохранять стек вызова SQL запросов

• Включить монитор на 30 минут

• Удалить ранее собранные данные

Page 60: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 4 – на стенде проверяем

работоспособность кэша

• Отладка – Суммарная статистика

• Отладка – Статистика SQL запросов

• Отладка – Статистика включаемых областей

• Отладка – Время исполнения страницы

Page 61: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 4 – выбираем часто используемые

страницы (на глаз или по данным монитора

производительности)

• Главная

• Специальные предложения

• Каталог

• Раздел каталога

• Элемент каталога

Page 62: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 4 – проверяем работоспособность кэша

для каждой выбранной страницы – Главная

• Выключаем кэш

Page 63: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 4 – проверяем работоспособность кэша

для каждой выбранной страницы – Главная

• Выключаем кэш

• Обновляем страницу, смотрим время

исполнения

Page 64: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 4 – проверяем работоспособность кэша

для каждой выбранной страницы – Главная

• Выключаем кэш

• Обновляем страницу, смотрим время

исполнения

• Включаем кэш, обновляем страницу,

смотрим время исполнения - работает

Page 65: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 4 – проверяем работоспособность кэша

для каждой выбранной страницы –

Специальные предложения

Время ответа обновленной страницы с кэшом

не отличается от страницы без использования

кэша – кэш не работает.

Page 66: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 4 – проверяем работоспособность кэша

для каждой выбранной страницы –

Специальные предложения

Время ответа обновленной страницы с кэшом

не отличается от страницы без использования

кэша – кэш не работает.

Page 67: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 5 – для проблемных страниц

анализируем причины неиспользования

кэша

• Идем в раздел «время создания страницы»

Page 68: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 5 – для проблемных страниц

анализируем причины неиспользования

кэша

• Идем в раздел «время создания страницы»

• Смотрим структуру вызова компонентов и

локализуем проблемный компонент

Page 69: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 5 – для проблемных страниц

анализируем причины неиспользования

кэша

• Идем в раздел «время создания страницы»

• Смотрим структуру вызова компонентов и

локализуем проблемный компонент

• Смотрим в шаблон/компонент и

локализуем причину

Page 70: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 5 – для проблемных страниц

анализируем причины неиспользования

кэша

• Идем в раздел «время создания страницы»

• Смотрим структуру вызова компонентов и

локализуем проблемный компонент

• Смотрим в шаблон/компонент и

локализуем причину

Page 71: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 5 – для проблемных страниц

анализируем причины неиспользования

кэша

• Идем в раздел «время создания страницы»

• Смотрим структуру вызова компонентов и

локализуем проблемный компонент

• Смотрим в шаблон/компонент и

локализуем причину

Page 72: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 5 – для проблемных страниц

анализируем причины неиспользования

кэша

• Идем в раздел «время создания страницы»

• Смотрим структуру вызова компонентов и

локализуем проблемный компонент

• Смотрим в шаблон/компонент и

локализуем причину

Page 73: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 6 – анализируем результаты монитора

производительности

• Раздел «Страницы»

• Суммарное время – нагрузка на сервер

• Среднее время – скорость сайта

• Имеет смысл оптимизировать главную

страницу сайта и страницу каталога

Page 74: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 6 – оптимизируем главную

• Смотрим время вызова компонентов

Page 75: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 6 – продолжаем анализ страниц

• Смотрим время вызова компонентов

• Локализуем место долгой загрузки

Page 76: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 6 – продолжаем анализ страниц

• Смотрим время вызова компонентов

• Локализуем место долгой загрузки

• Исследуем

Page 77: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 7 – анализируем проблемы с php-кодом

• Включаем XHProf

• Идем по пути вызова функций

Page 78: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 7 – анализируем проблемы с php-кодом

• Включаем XHProf

• Идем по пути вызова функций

Page 79: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 7 – анализируем проблемы с php-кодом

• Включаем XHProf

• Идем по пути вызова функций

Page 80: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Пример аудитаnew.texenergo.ru

Партнерская конференция 2015

#bitrixconf2015

Шаг 7 – анализируем проблемы с php-кодом

• Включаем XHProf

• Идем по пути вызова функций

Page 81: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит new.texenergo.ruИтоги

Партнерская конференция 2015

#bitrixconf2015

Простой аудит, продолжительность – 2 рабочих дня

• Снижение времени ответа некэшированных страниц с 3-5 секунд до 0.5

секунд в среднем

• Ускорение повторно загруженных страниц до 0.25 секунд в среднем

• Скорость сайта: быстро

Page 82: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Аудит new.texenergo.ruПути развития процедуры аудита

Партнерская конференция 2015

#bitrixconf2015

• Максимальная автоматизация – постобработка результатов сбора

данных монитором производительности

(акцент на долгих страницах, сводка по проблемным местам в коде)

• Сводка по компонентам в которых не был использован кэш

• База знаний по стандартным проблемам связанным с

производительностью

Page 83: Аудит производительности изнутри. Как самому научиться следить за производительностью сайта

Евгений Потапов

• http://itsumma.ru

[email protected]

• http://facebook.com/eapotapov

http://itsumma.ru/bitrixtools

Партнерская конференция 2015

#bitrixconf2015

Александр Лыженков

• http://aeroidea.ru

[email protected]

• http://www.facebook.com/a.lyzhenkov