Презентация на тему "Аудит производительности изнутри"

Презентация: Аудит производительности изнутри
Включить эффекты
1 из 83
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
4.0
1 оценка

Комментарии

Нет комментариев для данной презентации

Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.


Добавить свой комментарий

Аннотация к презентации

Смотреть презентацию онлайн с анимацией на тему "Аудит производительности изнутри" по информатике. Презентация состоит из 83 слайдов. Для студентов. Материал добавлен в 2018 году. Средняя оценка: 4.0 балла из 5.. Возможность скчачать презентацию powerpoint бесплатно и без регистрации. Размер файла 12.37 Мб.

Содержание

  • Презентация: Аудит производительности изнутри
    Слайд 1

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

  • Слайд 2

    Евгений Потапов генеральный директор компании ITSumma Круглосуточное администрирование и техническая поддержка веб-сайтов На поддержке CarambaTV, Наше Радио, Aero, Бюро Пирогова, ПостНаука, Marketium, Travelata, AlterGeo, Invisible, VseMayki, AcademMedia 100 миллионов уникальных посетителей в сутки Штат – 50 человек Партнерская конференция 2015 #bitrixconf2015

  • Слайд 3

    Александр Лыженков технический директор компании Aero Creative Agency Специализируемся на создании, поддержке и развитии технологичных e-commerce проектов. Выводим крупнейшие ритейл-бренды в онлайн. Среди наших клиентов: «Евросеть», «Мегафон-Ритейл», ЦУМ, «ЦентрОбувь», «Технопарк», «Техносила», «АльфаСтрахование», СГ МСК, «1С», «Уральские авиалинии», YotaDevices, ForexClub. Постоянный штат – 20 человек Партнерская конференция 2015 #bitrixconf2015

  • Слайд 4

    Типичные проблемы поддержки Долгое время ответа веб-сайта. Критическое потребление ресурсов сервера (CPU, диски) Рост нагрузки при скачках посещаемости Проблемы при выкладке нового кода Проблемы с «железом» Партнерская конференция 2015 #bitrixconf2015

  • Слайд 5

    Содержание Когда пришло время делать аудит? Как проводить аудит? Какой есть инструментарий? Пример проведения аудита Партнерская конференция 2015 #bitrixconf2015

  • Слайд 6

    Когда нужно делать аудит? два «полюса» в разработке Сначала все сделаем и «зарелизим», а там – посмотрим Заранее спланировать код так, чтобы он был высокопроизводительным Партнерская конференция 2015 #bitrixconf2015

  • Слайд 7

    Партнерская конференция 2015 #bitrixconf2015 Сначала все сделаем…

  • Слайд 8

    Партнерская конференция 2015 #bitrixconf2015 …а там посмотрим

  • Слайд 9

    Партнерская конференция 2015 #bitrixconf2015 …А может детально проработать каждый момент?

  • Слайд 10

    «Быстро все сделаем» типичные проблемы Неоптимальный код на основе которого разработано много элементов сайта «Бомба замедленного действия» - неожиданное падение производительности в процессе эксплуатации Плавное увеличение времени ответа с каждой новой «фичей» Партнерская конференция 2015 #bitrixconf2015

  • Слайд 11

    Неоптимальный код на основе которого разработано много элементов сайта Партнерская конференция 2015 #bitrixconf2015 Разработанная функциональность используется для последующих доработок, и тогда, когда приходит необходимость оптимизации кода – код уже очень не просто изменить

  • Слайд 12

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

  • Слайд 13

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

  • Слайд 14

    Как попытаться избежать проблем?Итеративный подход к аудиту Разрабатываем часть функциональности сайта Проводим аудит Дорабатываем самые «тормозные» моменты Разрабатываем дальше Проводим аудит Партнерская конференция 2015 #bitrixconf2015

  • Слайд 15

    Аудит производительности – это не так сложно. Состоит из: Аудита инфраструктуры(Аудит серверного ПО и «железа», мониторинг) Аудита кода(С использованием встроенного инструментария 1С-Битрикс) Аудита фронт-энда, скорость сайта(Анализ времени загрузки страницы) Партнерская конференция 2015 #bitrixconf2015

  • Слайд 16

    Аудит инфраструктуры Когда и как применять Цель – убедиться в том, что причина возможных проблем – не «экосистема» сервера Чаще всего – в боевой эксплуатации. Часть 1: первичный анализ сервера Часть 2: мониторинг в течении продолжительного времени Партнерская конференция 2015 #bitrixconf2015

  • Слайд 17

    Аудит инфраструктуры Что анализируем? Факторы влияющие на время ответа сайта Специфика настройки веб-сервера. Нагрузка на процессор Нагрузка на дисковую подсистему Проблемы с работой базы данных Проблемы с сетевыми интерфейсами Партнерская конференция 2015 #bitrixconf2015

  • Слайд 18

    Аудит инфраструктуры Первичный анализ. Партнерская конференция 2015 #bitrixconf2015 Какой хостинг использован?Hetzner/FastVPS? Надо срочно проверить SMART состояние дисков. Каково значение TTL в DNS?Оптимально

  • Слайд 19

    Аудит инфраструктуры Первичный анализ. Партнерская конференция 2015 #bitrixconf2015 Какова частота процессора? Сколько ядер? Если нужно быстро отдавать страницу пользователю – важна частота (>2.5 ггц)Если нужно отдавать сайт многим одновременным пользователям важно число ядер (как минимум >=4) Шаг 2. Анализ аппаратной конфигурации - Процессор

  • Слайд 20

    Аудит инфраструктуры Первичный анализ. Партнерская конференция 2015 #bitrixconf2015 Каков тип жестких дисков – SATA или SSD?Есть возможность поставить SSD? Если да – запланировать использование SSD для базы данных. Шаг 3. Анализ аппаратной конфигурации – Жесткие диски

  • Слайд 21

    Аудит инфраструктуры Первичный анализ. Партнерская конференция 2015 #bitrixconf2015 Шаг 4. Анализ ПО сервера. Инструменты – проверка системы

  • Слайд 22

    Аудит инфраструктуры Первичный анализ. Партнерская конференция 2015 #bitrixconf2015 Open files limit (https://rtcamp.com/tutorials/linux/increase-open-files-limit/) PHP – убедиться что есть opcache (apc/zendopcache) PHP – убедиться, что память опкэш-акселератора не заполнена Nginx+apache? Убедиться в том, что статика отдается с nginx Nginx+apache? Убедиться в том, что стоит оптимальное количество worker Только apache? Поставить nginx. PHP-FPM? Проверить лимиты max_children Шаг 5. Анализ настроек операционной системы и веб-части

  • Слайд 23

    Аудит инфраструктуры Первичный анализ. Партнерская конференция 2015 #bitrixconf2015 Шаг 6. Настройки – Производительность – Сервер БД

  • Слайд 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/)

  • Слайд 25

    Аудит инфраструктуры Первичный анализ. Bonus-track Партнерская конференция 2015 #bitrixconf2015 Убедиться в том, что создание бэкапов работает Убедиться в том, что бэкапы создаются на внешний сервер Убедиться в том, что из бэкапов можно восстановиться Убедиться в том, что на сервере есть RAID контроллер Убедиться в том, что массив не RAID-0 Убедиться в том, что массив не находиться в аварийном состоянии

  • Слайд 26

    Аудит инфраструктуры Мониторинг в течении 24-48 часов Партнерская конференция 2015 #bitrixconf2015 Время ответа страниц сайта Число запросов в секунду на веб-сервер Нагрузка на процессор/Load Average Нагрузка на дисковую подсистему Работа web-сервера Работа MySQL

  • Слайд 27

    Аудит инфраструктуры Типичные примеры «серверных проблем» – код не виноват 1. Периодическая нагрузка создаваемая кроном или агентами Партнерская конференция 2015 #bitrixconf2015 Проблема: «Сайт иногда работает очень медленно».

  • Слайд 28

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

  • Слайд 29

    Аудит инфраструктуры Типичные примеры «серверных проблем» – код не виноват 1. Периодическая нагрузка создаваемая кроном или агентами Партнерская конференция 2015 #bitrixconf2015 Причина: бэкап в кроне, создающий высокую нагрузку на диск

  • Слайд 30

    Аудит инфраструктуры Типичные примеры «серверных проблем» – код не виноват 2. Скорость на сетевом интерфейсе упирается в «потолок» Партнерская конференция 2015 #bitrixconf2015 Новостной сайт. Проблема: резко замедляется скорость сайта при выходе новости.

  • Слайд 31

    Аудит инфраструктуры Типичные примеры «серверных проблем» – код не виноват 2. Скорость на сетевом интерфейсе упирается в «потолок» Партнерская конференция 2015 #bitrixconf2015 Причина: пропускная способность заканчивается при регулярном выходе новостей

  • Слайд 32

    Аудит инфраструктуры Типичные примеры «серверных проблем» – код не виноват 3. Хост-машина забирает ресурсы Партнерская конференция 2015 #bitrixconf2015 Проблема: неожиданно начинает тормозить весь сервер

  • Слайд 33

    Аудит инфраструктуры Типичные примеры «серверных проблем» – код не виноват 3. Хост-машина забирает ресурсы Партнерская конференция 2015 #bitrixconf2015 Причина: виртуальный сервер с «прожорливыми соседями»

  • Слайд 34

    Аудит инфраструктуры Симптомы проблем в коде Партнерская конференция 2015 #bitrixconf2015 Время ответа увеличилось в момент выкладки кода и осталось неизменным

  • Слайд 35

    Аудит инфраструктуры Симптомы проблем в коде Партнерская конференция 2015 #bitrixconf2015 Время ответа в целом очень большое

  • Слайд 36

    Аудит кода Методика проведения Первичный анализмонитор производительности на боевом сервере Изоляция проекта на «стенде»Позволит провести анализ кода в ненагруженной экосистеме Постраничный поиск «долгих» компонентов + исследование кодаДетальный анализ самых медленных страниц Партнерская конференция 2015 #bitrixconf2015

  • Слайд 37

    Аудит кода Первичный анализ – монитор производительности на боевом сервере Цель: понять как работает сайт для большого числа пользователей Какие страницы/компоненты создают суммарно наибольшую нагрузку на сервер Что можно оптимизировать в первую очередь, а что – впоследствии? Партнерская конференция 2015 #bitrixconf2015

  • Слайд 38

    Аудит кода Первичный анализ – монитор производительности на боевом сервере Убеждаемся что нет внешних причин для «тормозов» Настройки – Настройки продукта – Настройки модулей – Монитор производительности Вести журнал SQL запросов Сохранять стек вызова SQL запросов Партнерская конференция 2015 #bitrixconf2015

  • Слайд 39

    Аудит кода Монитор производительности - страницы Позволяет найти: Страницы которые создают максимальную нагрузку на процессор (если оптимизировать – нагрузка на сервер будет меньше) Страницы которые дольше всего грузятся пользователю («скорость сайта» выше) Партнерская конференция 2015 #bitrixconf2015

  • Слайд 40

    Аудит кода Монитор производительности - страницы Как включить: Фильтр – «+» - административный раздел «нет» Для скорости загрузки страницы: страница-время (среднее) Для снижения нагрузки на процессор страница-время (сумма) Партнерская конференция 2015 #bitrixconf2015

  • Слайд 41

    Аудит кода Монитор производительности - компоненты Позволяет найти: Самые «тяжелые» компоненты Посмотреть самые тяжелые запросы в них (перейдя по клику на число запросов) Найти откуда запрос вызывается (в разделе «SQL запросы») Партнерская конференция 2015 #bitrixconf2015

  • Слайд 42

    Аудит кода Монитор производительности – SQL запросы Позволяет найти: Самые «тяжелые» запросы Компоненты, откуда они вызваны Непосредственное место вызова в компонентах План выполнения запросов Партнерская конференция 2015 #bitrixconf2015

  • Слайд 43

    Аудит кода Монитор производительности – SQL запросы Наведение мыши на SQL-запрос при включенной в настройках Монитора записи стэка вызовов покажет стек-трейс вызова SQL запроса (места в компоненте, откуда он вызывается) Партнерская конференция 2015 #bitrixconf2015

  • Слайд 44

    Аудит кода Изоляция кода на стенде Партнерская конференция 2015 #bitrixconf2015 Цель: проверить работу кода на ненагруженной инфраструктуре Отдельная виртуальная машина 1С-Битрикс Опционально: X-Windows с удобным редактором кода Опционально: Установленный XHProfдля профилирования PHP

  • Слайд 45

    Аудит кода Изоляция кода на стенде Партнерская конференция 2015 #bitrixconf2015 Rsyncдиректории c 1С-Битрикс (и исключением кэша, картинок и других больших файлов) Перенос БД До открытия сайта: переведение агентов на крон SQL-запросом Ссылка на виртуальную машину (подробные инструкции и больше материалов – позже)www.itsumma.ru/bitrixtools

  • Слайд 46

    Аудит кода Постраничный поиск долгих компонентов Партнерская конференция 2015 #bitrixconf2015 Инструменты отладки Позволяет легко проанализировать эффективность кэша Позволяют проанализировать структуру выполнения компонентов на странице по времени

  • Слайд 47

    Аудит кода Постраничный поиск долгих компонентов Партнерская конференция 2015 #bitrixconf2015 Поиск неработающего кэша Обходим все основные страницы Сбрасываем кэш, но не отключаем его в инструментах отладки Если кэш работает эффективно – время работы страницы должно быть в приемлемых значениях (как минимум

  • Слайд 48

    Аудит кода Постраничный поиск долгих компонентов Партнерская конференция 2015 #bitrixconf2015 Поиск долгих компонентов Обходим все основные страницы Отключаем кэш в инструментах отладки Смотрим за структурой вызовов компонентов

  • Слайд 49

    Аудит кода Постраничный поиск долгих компонентов Партнерская конференция 2015 #bitrixconf2015 Поиск долгих компонентов Обходим все основные страницы Отключаем кэш в инструментах отладки Смотрим за структурой вызовов компонентов

  • Слайд 50

    Аудит кода XHProf Партнерская конференция 2015 #bitrixconf2015 Детальный аудит PHP-кода Профилировщик от Facebook https://github.com/phacility/xhprof Удобная процедура исследования кода Стоит использовать для анализа кода, когда проблема не на стороне долгого обращения к базе данных

  • Слайд 51

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015

  • Слайд 52

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015

  • Слайд 53

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015

  • Слайд 54

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015

  • Слайд 55

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015

  • Слайд 56

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015

  • Слайд 57

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 1 – проверяем сервер Ставим сервер на мониторинг (24-48 часов) Ставим на мониторинг внешнее время ответа веб-страниц сайта Смотрим все базовые настройки операционной системы Смотрим не «развалился» ли RAID, работают ли бэкапы

  • Слайд 58

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 2 – копируем проект на «стенд» Rsyncкода Перенос БД Выключение агентов

  • Слайд 59

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 3 – включаем монитор производительности на боевом сервере Вести журнал SQL вызовов Сохранять стек вызова SQL запросов Включить монитор на 30 минут Удалить ранее собранные данные

  • Слайд 60

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 4 – на стенде проверяем работоспособность кэша Отладка – Суммарная статистика Отладка – Статистика SQL запросов Отладка – Статистика включаемых областей Отладка – Время исполнения страницы

  • Слайд 61

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 4 – выбираем часто используемые страницы (на глаз или по данным монитора производительности) Главная Специальные предложения Каталог Раздел каталога Элемент каталога

  • Слайд 62

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 4 – проверяем работоспособность кэша для каждой выбранной страницы – Главная Выключаем кэш

  • Слайд 63

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 4 – проверяем работоспособность кэша для каждой выбранной страницы – Главная Выключаем кэш Обновляем страницу, смотрим время исполнения

  • Слайд 64

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 4 – проверяем работоспособность кэша для каждой выбранной страницы – Главная Выключаем кэш Обновляем страницу, смотрим время исполнения Включаем кэш, обновляем страницу, смотрим время исполнения - работает

  • Слайд 65

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 4 – проверяем работоспособность кэша для каждой выбранной страницы – Специальные предложения Время ответа обновленной страницы с кэшом не отличается от страницы без использования кэша – кэш не работает.

  • Слайд 66

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 4 – проверяем работоспособность кэша для каждой выбранной страницы – Специальные предложения Время ответа обновленной страницы с кэшом не отличается от страницы без использования кэша – кэш не работает.

  • Слайд 67

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 5 – для проблемных страниц анализируем причины неиспользования кэша Идем в раздел «время создания страницы»

  • Слайд 68

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 5 – для проблемных страниц анализируем причины неиспользования кэша Идем в раздел «время создания страницы» Смотрим структуру вызова компонентов и локализуем проблемный компонент

  • Слайд 69

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 5 – для проблемных страниц анализируем причины неиспользования кэша Идем в раздел «время создания страницы» Смотрим структуру вызова компонентов и локализуем проблемный компонент Смотрим в шаблон/компонент и локализуем причину

  • Слайд 70

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 5 – для проблемных страниц анализируем причины неиспользования кэша Идем в раздел «время создания страницы» Смотрим структуру вызова компонентов и локализуем проблемный компонент Смотрим в шаблон/компонент и локализуем причину

  • Слайд 71

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 5 – для проблемных страниц анализируем причины неиспользования кэша Идем в раздел «время создания страницы» Смотрим структуру вызова компонентов и локализуем проблемный компонент Смотрим в шаблон/компонент и локализуем причину

  • Слайд 72

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 5 – для проблемных страниц анализируем причины неиспользования кэша Идем в раздел «время создания страницы» Смотрим структуру вызова компонентов и локализуем проблемный компонент Смотрим в шаблон/компонент и локализуем причину

  • Слайд 73

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 6 – анализируем результаты монитора производительности Раздел «Страницы» Суммарное время – нагрузка на сервер Среднее время – скорость сайта Имеет смысл оптимизировать главную страницу сайта и страницу каталога

  • Слайд 74

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 6 – оптимизируем главную Смотрим время вызова компонентов

  • Слайд 75

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 6 – продолжаем анализ страниц Смотрим время вызова компонентов Локализуем место долгой загрузки

  • Слайд 76

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 6 – продолжаем анализ страниц Смотрим время вызова компонентов Локализуем место долгой загрузки Исследуем

  • Слайд 77

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 7 – анализируем проблемы с php-кодом Включаем XHProf Идем по пути вызова функций

  • Слайд 78

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 7 – анализируем проблемы с php-кодом Включаем XHProf Идем по пути вызова функций

  • Слайд 79

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 7 – анализируем проблемы с php-кодом Включаем XHProf Идем по пути вызова функций

  • Слайд 80

    Пример аудита new.texenergo.ru Партнерская конференция 2015 #bitrixconf2015 Шаг 7 – анализируем проблемы с php-кодом Включаем XHProf Идем по пути вызова функций

  • Слайд 81

    Аудит new.texenergo.ru Итоги Партнерская конференция 2015 #bitrixconf2015 Простой аудит, продолжительность – 2 рабочих дня Снижение времени ответа некэшированных страниц с 3-5 секунд до 0.5 секунд в среднем Ускорение повторно загруженных страниц до 0.25 секунд в среднем Скорость сайта: быстро

  • Слайд 82

    Аудит new.texenergo.ru Пути развития процедуры аудита Партнерская конференция 2015 #bitrixconf2015 Максимальная автоматизация – постобработка результатов сбора данных монитором производительности(акцент на долгих страницах, сводка по проблемным местам в коде) Сводка по компонентам в которых не был использован кэш База знаний по стандартным проблемам связанным с производительностью

  • Слайд 83

    Евгений Потапов http://itsumma.ru eapotapov@itsumma.ru http://facebook.com/eapotapovhttp://itsumma.ru/bitrixtools Партнерская конференция 2015 #bitrixconf2015 Александр Лыженков http://aeroidea.ru lyzhenkov@aeroidea.ru http://www.facebook.com/a.lyzhenkov

Посмотреть все слайды

Сообщить об ошибке