Процессор показывает сто процентов: вопрос перед тем, как читать число

Три разных числа носят одно имя: среднее с момента загрузки, накопленный итог и разница между двумя замерами. Только последнее отвечает на вопрос «сейчас».

AtlasPVE ·

Эта статья отвечает на

  • proxmox высокая загрузка cpu
  • proxmox какой процесс ест cpu
  • что такое load average
  • как читать вывод top
  • proxmox cpu на 100 процентов

Вы смотрите на панель, и процессор выглядит сильно загруженным. Прежде чем что-либо делать, есть один-единственный вопрос: какой промежуток описывает это число?

Потому что три разных числа носят одно имя, и все три говорят о разном.

Три числа с одним именем

Среднее с момента загрузки. Если два месяца назад машина трое суток была сильно занята, эта занятость до сих пор сидит внутри этого среднего. На вопрос «сейчас» оно не отвечает.

Накопленный итог. Он никогда не убывает. Он рассказывает о прошлом, а не о сегодня.

Разница между двумя замерами. Берутся два измерения и читается изменение между ними. Только оно отвечает на вопрос «сейчас».

Классическая ловушка

Стандартное средство, перечисляющее процессы, на первом экране показывает среднее с момента загрузки. Если вы посмотрите на первый экран и начнёте действовать, вы вмешались в прошлое, а не в сегодня.

Верный путь, взять хотя бы два замера и читать второй. Само средство не ошибается; ошибается способ его чтения.

Одна и та же ошибка везде принимает одну форму

Эту форму мы в этой вики видели уже дважды.

Про износ диска мы сказали не процент, а наклон: восемьдесят пять процентов остатка на одном диске означает десять лет, на другом восемь месяцев.

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

Для процессора верно не среднее, а разница. Три разных места, одна ошибка чтения.

Это можно записать общим правилом: число без указанного временного окна, это не измерение. Прежде чем действовать по числу, спросите, какое окно оно охватывает.

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

Тогда нужно второе различие: занята одна машина, или сервера не хватает?

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

Беда наступает в тот миг, когда насыщается сервер: гости перестают получать то, что просят, и все разом замедляются.

И ещё кое-что часто путают: нагрузка, это не использование процессора. Нагрузка считает то, что ждёт, а часть этого ждёт не процессора, а диска. Возможно, что нагрузка высока, пока процессор простаивает, и это говорит вам смотреть в другом месте.

Что делает Atlas

Перечисляя самые прожорливые по процессору процессы сервера, Atlas намеренно берёт два замера и читает второй.

Причина, ровно та ловушка выше: первый замер несёт среднее с момента загрузки, и показывать его было бы обманчиво. Разница, не мелочь; список, отсортированный по первому замеру, выставляет сегодняшним виновником процесс, который был занят месяцы назад.

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

Это тот же принцип, что и в статье о тепле: то, что наблюдает, не должно быть тем, что стоит дорого.

Источники

Собственная документация Proxmox. На английском, и последнее слово в этом вопросе за ней.

Похожие статьи

Как это выглядит внутри Atlas?

Перейти на страницу продукта