Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья5 мин чтенияПросмотры0

Как читать PSI в Linux: проверить давление на CPU, память и диск

Что показывают файлы /proc/pressure, как отличить занятость от ожидания ресурсов и использовать avg10, avg60, avg300 и total без ложных порогов.

Комментарии 0

Серверная стойка с тремя группами индикаторов нагрузки без надписей
В этой статье

Высокая загрузка CPU не всегда означает, что серверу плохо, а почти занятая память не всегда требует увеличения VPS. Полезнее знать, сколько времени задачи не могли продвигаться из-за нехватки процессора, памяти или ввода-вывода. Для этого ядро Linux предоставляет Pressure Stall Information — PSI.

Инструкция относится к Linux с включённым PSI и интерфейсом procfs. Команды сверены с документацией ядра 26 сентября 2026 года и только читают данные. В использованном изолированном окружении файлы PSI не были смонтированы, поэтому выполнение подтвердило ожидаемую ошибку отсутствия интерфейса, но не дало числового примера с реального сервера.

Проверьте наличие интерфейса

ls -l /proc/pressure

Если каталог существует, в нём обычно доступны файлы для процессора, памяти и ввода-вывода. Отсутствие каталога означает, что ядро, его конфигурация или контейнерное окружение не предоставляют PSI. Не создавайте эти файлы вручную: это виртуальный интерфейс ядра.

Прочитайте три источника

cat /proc/pressure/cpu

cat /proc/pressure/memory

cat /proc/pressure/io

Чтение почти не создаёт нагрузки. Оно показывает текущие скользящие средние и накопленное время ожидания с момента загрузки или создания соответствующей группы. Значения нужно сопоставлять с интервалом, мониторингом и пользовательскими задержками.

Разберите строки some и full

Строка some означает, что хотя бы часть задач задерживалась из-за ресурса. Строка full означает более тяжёлое состояние: одновременно не могла выполнять полезную работу вся группа нетривиальных задач. Для CPU обычно доступна только some, потому что при наличии исполняемой задачи процессор всё равно занят полезной работой.

Поле

Смысл

Как не ошибиться

avg10

Средняя доля времени ожидания примерно за 10 секунд

Чувствительна к короткому пику

avg60

Средняя примерно за минуту

Сглаживает краткие всплески

avg300

Средняя примерно за пять минут

Может скрыть недавно начавшуюся проблему

total

Накопленное время ожидания в микросекундах

Само число растёт; важна разница за интервал

some

Ожидала часть задач

Не означает полную остановку системы

full

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

Особенно важна связь с задержками сервиса

Значение 5,00 в среднем не означает пять секунд ожидания и не равно загрузке CPU. Это доля времени в процентах за окно. Для оценки накопленного поля берут две точки и делят прирост total на длительность интервала в микросекундах.

Сопоставьте ресурс с симптомом

  • Рост cpu some вместе с очередью выполнения говорит, что задачам не хватает процессорного времени.

  • Рост memory some показывает задержки при возврате памяти; его сопоставляют с swap, reclaim и поведением приложения.

  • Рост memory full означает периоды, когда все задачи группы были остановлены из-за памяти, и требует быстрой диагностики.

  • Рост io some бывает при ожидании диска отдельными задачами; io full показывает общую остановку группы на вводе-выводе.

  • Низкий PSI при медленном сайте направляет поиск к приложению, блокировкам базы, сети или внешним API.

Снимите две точки для total

Для ручной проверки сохраните вывод, подождите согласованный короткий интервал под наблюдением и снимите его снова. Не создавайте искусственную нагрузку на рабочем сервере. Сравните прирост total с графиками ответа сайта и другими метриками.

cat /proc/pressure/memory

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

Почему универсального порога нет

Короткое давление во время резервного копирования и постоянное давление во время оформления заказов имеют разный риск. Порог выбирают из базовой линии и допустимой задержки конкретного сервиса. Сначала отмечают корреляцию с временем ответа, ошибками и очередями, затем задают предупреждение и критический уровень.

PSI не заменяет обычные метрики. Для CPU нужны использование и очередь, для памяти — доступный объём, swap и владельцы, для диска — задержка и пропускная способность. PSI добавляет ответ на вопрос, мешал ли дефицит ресурса задачам выполнять работу.

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

  • Показатель full растёт вместе с ошибками магазина или тайм-аутами базы.

  • Давление сохраняется после окончания известных фоновых задач.

  • Контейнер и хост показывают противоречивые данные.

  • Для исправления нужно менять лимиты, swap, планировщик, хранилище или конфигурацию базы.

  • Нет базовой линии, а увеличение тарифа предлагается только по одному мгновенному значению.

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

Обсуждение 0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.