Перейти к содержимому
В приложение

Ресурсы приложения

Сопоставляйте CPU, память и ожидания, а при смене релиза сравнивайте покрытые стабильные окна.

Когда дополнительный профиль ресурсов включён, агент узла читает документированные файлы cgroup v2 для обычных контейнеров выбранных Deployment. Доступ остаётся только для чтения, а новые зонды на горячих путях планировщика, выделения памяти и I/O не добавляются. Перед отправкой измерения объединяются в фиксированные интервалы UTC, поэтому объём трафика и хранения ограничен.

Каждый интервал хранит покрытое время, число измерений и источников, наблюдаемые и Ready-реплики, контейнер, релиз и доступность каждого источника. Пропущенный или неполный интервал остаётся видимым разрывом и никогда не превращается в ноль.

Схема потока: read-only счётчики cgroup контейнеров агрегируются агентом узла, сохраняются как история ресурсов, сравниваются в стабильных окнах релизов и попадают в причинно-нейтральные выводы внимания.

Измерения ресурсов сохраняют покрытие и идентичность от сбора до расследования.

Использование CPU — это разность времени CPU, делённая на покрытое реальное время; результат показан в средних ядрах. Доля квоты доступна только при конечной действующей квоте cgroup. Доля периодов троттлинга равна разности nr_throttled, делённой на разность nr_periods; длительность троттлинга остаётся отдельным сигналом. Ни одно из этих значений не является процентом потерянной производительности приложения.

CPU PSI some измеряет долю реального времени, когда хотя бы одна готовая к выполнению задача ждала CPU. CPU PSI full показывается только при поддержке источником ядра. Расход CPU, применение квоты и ожидание отвечают на разные вопросы — рассматривайте их отдельно.

Текущая память включает кеш, учтённый cgroup. Анонимная память и файловый кеш показаны отдельно. Запас вычисляется только относительно конечного действующего лимита. memory.high, memory.max, OOM и OOM kill — разные события счётчиков, их нельзя объединять в одно общее предупреждение о памяти.

Memory PSI описывает время задержки задач подсистемой памяти, а не утилизацию RAM. Вывод OOM — более сильное свидетельство, чем высокий график памяти; рост расхода без лимита, pressure или отказа остаётся обычным пунктом для разбора.

Байты и операции чтения или записи описывают поток данных, отнесённый к cgroup. I/O PSI описывает время ожидания задачами I/O. Okoscope не знает ёмкость или насыщение общего блочного устройства, поэтому ни одна из этих величин не называется процентом утилизации диска.

Метрики PID показывают текущее число, долю конечного лимита и события pids.max. Событие лимита означает, что процесс или поток не удалось создать в рамках лимита cgroup; график не определяет конкретного вызывающего.

Влияние на ресурсы сравнивает стабильные окна одинаковой длительности из целевого эпизода развёртывания и его предшественника. Прогрев во время rollout исключается, пересекающиеся релизы разделяются, а покрытие данных и Ready-реплик должно быть достаточным. Пока целевое окно не завершено, страница показывает сбор данных, а не отсутствие проблем.

Результат показывает базовое и целевое значения, абсолютное изменение, относительное изменение только когда оно математически определено и изменение в процентных пунктах для долей. Формулировка говорит «наблюдалось после релиза». Одновременно могут измениться поток запросов, состав трафика, внешние зависимости и масштабирование, поэтому одна корреляция не устанавливает причину.

Профиль ресурсов выключен по умолчанию, пока не пройдены измеримые критерии выпуска. Оператор задаёт ограниченные интервалы сбора и агрегации в chart агента. Сроки хранения подробных и агрегированных данных не зависят от runtime events: старые детали могут истечь, а совместимые rollup остаться доступными.

Если метрика пуста, проверьте включение профиля, выбор нагрузки, capability агента resource.utilization/v1, доступность источников cgroup v2, счётчики потерь доставки, выбранный период и срок хранения. Состояния «не поддерживается» и «нет лимита» показаны явно; не воспринимайте их как ноль.