TGViewer
about:performance about:performance @troubleperf · 1.5K subscribers
Post #73 2.32K
Про PSI, часть 3.
(часть 1, 2)

PSI (Pressure Stall Information) – это метрика показывает сколько времени задачи ждут доступа к ресурсам системы (CPU, память, диск). То есть отражает уровень насыщения (saturation): если значение больше нуля => есть конкуренция за ресурсы.

PSI делится на два типа:
- Some – одна и более задач ждут ресурс (это плохо, но может быть не критично)
- Full – все задачи находятся в ожидании ресурса (а это уже коллапс)

Примечание №1. Сегодня речь только про CPU.

Примеры:
- 2 CPU, 1 runnable задача → конкуренции за CPU нет, PSI = 0
- 2 CPU, 2 runnable задачи → конкуренции всё ещё нет, PSI = 0
- 2 CPU, 4 runnable задачи → две задачи исполняются, две ждут, PSI > 0 (две из четырех задач всегда ожидают своей очереди).

Примечание №2: под runnable я подразумеваю как исполняемые в данный момент, так и готовые к исполнению задачи.

Формула подсчета PSI (упрощенная):
threads = min(runnable_tasks, num_cpus)
SOME = min(delayed_tasks / threads, 1)
FULL = (threads - min(active_tasks, threads)) / threads

где:
- runnable_tasks – общее число задач, готовых к выполнению;
- num_cpus – количество доступных CPU;
- delayed_tasks – задачи, ожидающие ресурсы;
- active_tasks – задачи, выполняемые в данный момент.

Примеры:
- для 2 CPU и 1 runnable задачи:
threads = min(1, 2) = 1
SOME = min(0 / 1, 1) = 0
FULL = (1 - min(1, 1)) / 1 = 0


- для 2 CPU и 4 runnable задачи:
threads = min(4, 2) = 2
SOME = min((4 - 2) / 2, 1) = min(2 / 2, 1) = 1 # или 100%
FULL = (2 - min(2, 2)) / 2 = 0 # или 0%


Это значит, что какие-то задачи всегда ожидают CPU (some), но в целом что-то да исполняется на процессоре.

Так чем полезен PSI?

Он даёт 100% чистый сигнал: если PSI > 0, значит, есть ожидание процессора, значит система замедляется.

Есть и недостаток - PSI не показывает тренды и реагирует лишь постфактум, когда проблема УЖЕ появилась.

Теперь вернемся к Load Average и представим сколько дополнительной информации нам потребуется, чтобы выявить перенасыщение CPU.

Ну как минимум количество runnable процессов и CPU на машине. Три показателя!

При этом рост LA может быть связан не только с CPU, но и с I/O, что усложняет интерпретацию и требует дополнительного времени на анализ.

А так хочется один простой показатель, по которому сразу понятно, есть проблема или еще нет :)

——————-

❓На засыпку: почему на уровне системы может быть только PSI some? Бывают ли случаи когда появляется PSI full?

P.S. Скрин "на поразглядывать"
  • 👍 17
  • ❤ 1
More from @troubleperf
  1. Aug 14, 2026Post #120
  2. Jul 12, 2026about:performance pinned «»
  3. Jul 12, 2026Post #118
  4. Jul 11, 2026Post #117
  5. Jul 5, 2026Про бенчмаркинг, часть 3 (части 1,2) Ранее обсудили, что борьба с шумом (noise) процесс бе…
  6. Jun 21, 2026Продублирую свой комментарий на вопрос: Стоит задача оценки достаточности мощности оборудо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →