Оптимизация производительности начинается с определения ключевых метрик, обычно связанных с задержкой и пропускной способностью. Мониторинг этих метрик позволяет выявить слабые места приложения. С помощью метрик можно оптимизировать производительность.
Кроме того, многие инструменты мониторинга позволяют настраивать оповещения по вашим метрикам, чтобы вы получали уведомления при достижении определённого порогового значения. Например, вы можете настроить оповещение, которое будет уведомлять вас, когда процент неудачных запросов превысит x % от нормального уровня. Инструменты мониторинга помогут вам определить, как выглядит нормальная производительность, и выявить необычные скачки задержки, количества ошибок и других ключевых метрик. Возможность мониторинга этих метрик особенно важна в критически важные для бизнеса периоды времени или после запуска нового кода в эксплуатацию.
Определить показатели задержки
Убедитесь, что ваш пользовательский интерфейс максимально отзывчив, учитывая, что пользователи ожидают от мобильных приложений ещё более высоких стандартов. Также следует измерять и отслеживать задержку для внутренних служб, особенно учитывая, что её отсутствие может привести к проблемам с пропускной способностью.
Рекомендуемые показатели для отслеживания включают следующее:
- Длительность запроса
- Длительность запроса на уровне детализации подсистемы (например, вызовы API)
- Продолжительность работы
Определить показатели пропускной способности
Пропускная способность — это показатель общего количества запросов, обслуженных за определённый период времени. На пропускную способность может влиять задержка подсистем, поэтому для её повышения может потребоваться оптимизация с учётом задержки.
Вот некоторые рекомендуемые показатели для отслеживания:
- Запросов в секунду
- Объем данных, передаваемых в секунду
- Количество операций ввода-вывода в секунду
- Использование ресурсов, таких как использование ЦП или памяти
- Размер невыполненной обработки, например, публикация/подписка или количество потоков
Не только среднее
Распространённая ошибка при измерении производительности — рассмотрение только среднего значения. Хотя это полезно, оно не даёт представления о распределении задержки. Более эффективным показателем для отслеживания являются процентили производительности, например, 50-й, 75-й, 90-й или 99-й процентили.
Как правило, оптимизацию можно выполнить в два этапа. Сначала оптимизируйте задержку до 90-го процентиля. Затем рассмотрите 99-й процентиль, также известный как хвостовая задержка: небольшую часть запросов, выполнение которых занимает значительно больше времени.
Мониторинг на стороне сервера для получения подробных результатов
Профилирование на стороне сервера обычно предпочтительнее для отслеживания метрик. Серверную часть обычно гораздо проще инструментировать, она обеспечивает доступ к более детальным данным и меньше подвержена помехам из-за проблем с подключением.
Мониторинг браузера для сквозной видимости
Профилирование браузера может предоставить дополнительную информацию об опыте конечного пользователя. Оно может показать, какие страницы имеют медленные запросы, и затем сопоставить эти данные с данными мониторинга на стороне сервера для дальнейшего анализа.
Google Analytics предоставляет встроенный мониторинг времени загрузки страниц в отчёте «Время загрузки страниц» . Это позволяет получить ряд полезных данных для понимания пользовательского опыта на вашем сайте, в частности:
- Время загрузки страницы
- Перенаправление времени загрузки
- Время ответа сервера
Мониторинг в облаке
Существует множество инструментов для сбора и мониторинга показателей производительности вашего приложения. Например, вы можете использовать Google Cloud Logging для регистрации показателей производительности в вашем проекте Google Cloud , а затем настроить панели мониторинга в Google Cloud Monitoring для мониторинга и сегментации зарегистрированных показателей.
Ознакомьтесь с руководством по ведению журнала, чтобы ознакомиться с примером записи журнала в Google Cloud Logging из пользовательского перехватчика в клиентской библиотеке Python. Имея эти данные в Google Cloud, вы можете строить метрики на основе этих данных, чтобы отслеживать работу своего приложения с помощью Google Cloud Monitoring. Следуйте руководству по пользовательским метрикам на основе журналов, чтобы построить метрики на основе журналов, отправляемых в Google Cloud Logging.
В качестве альтернативы вы можете использовать клиентские библиотеки мониторинга, чтобы определить показатели в своем коде и отправлять их непосредственно в мониторинг, отдельно от журналов.
Пример метрик на основе журнала
Предположим, вы хотите отслеживать значение is_fault
, чтобы лучше понимать частоту ошибок в вашем приложении. Вы можете извлечь значение is_fault
из журналов и использовать его в новой метрике-счётчике ErrorCount
.
В Cloud Logging метки позволяют группировать метрики по категориям на основе других данных в журналах. Вы можете настроить метку для поля method
отправляемого в Cloud Logging , чтобы увидеть, как распределяется количество ошибок методом API Google Ads.
Настроив метрику ErrorCount
и метку Method
, вы можете создать новую диаграмму на панели мониторинга для мониторинга ErrorCount
, сгруппированного по Method
.
Оповещения
В Cloud Monitoring и других инструментах можно настроить политики оповещений, которые определяют, когда и как должны срабатывать оповещения на основе ваших метрик. Инструкции по настройке оповещений Cloud Monitoring см. в руководстве по оповещениям .