Hacker News Digest

03 сентября 2025 г. в 00:01 • brendanlong.com • ⭐ 388 • 💬 134

OriginalHN

#cpu#hyper-threading#turbo#stress-ng#postgresql#memcached

%CPU utilization is a lie

%CPU — обманка
Система показывает 50 % загрузки, но реально сервер выполняет 60–100 % максимально возможной работы.

Эксперимент
Ryzen 9 5900X (12 ядер / 24 потока), Turbo включён.
Скрипт запускал stress-ng двумя способами:

  • 24 потока по 1–100 % нагрузки;
  • 1–24 потока по 100 %.

Результаты

  • Общий CPU-тест: при 50 % «утилитой» реальная работа 60–65 %.
  • 64-битная математика: 65–85 %.
  • Умножение матриц: 80–100 %.

Почему так

  1. Hyper-threading: после 12 потоков «ядра» делят ресурсы, прирост стремится к нулю.
  2. Turbo: частота падает с 4.9 до 4.3 ГГц при росте загрузки, поэтому «утил» растёт быстрее реальной работы.

Вывод
Полагаться на линейный рост %CPU — ошибка. При эффективной загрузке (>50 %) показания занижены, и различия между процессорами могут быть огромными.