Я запутался, читая этот вопрос о переполнении стека. Аскер говорит:

«top» просто не будет делать, так как между дампами процессора есть задержка, для этого требуется 2 дампа и несколько секунд, что приводит к зависанию моей программы ».

О чем говорит спрашивающий? Я всегда предполагал, что top делает то же самое, что рекомендует принятый ответ. И его заявление о том, что top "вешает свою программу" не имеет для меня никакого смысла, но никто не вызвал его в комментариях.

Обычно мне нужно получить общее использование ЦП для большой группы процессов, работающих на одной машине. Обычно я просто запускаю top с довольно большой частотой выборки (обычно 10 секунд), в то время как мои процессы работают под нагрузкой в худшем случае и определяю оценку средней нагрузки. Является ли измерение таким образом совершенно неправильным?

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

1 ответ1

0

Автор этого комментария, вероятно, ссылается на это:

Описание проблемы: Когда я использую конкретную опцию для команды 'top', в частности, -b -n1, я не получаю правильный вывод.

При запуске top в обычном режиме, он продолжает обновляться, и значения в строке процессора изменяются с каждым обновлением. Однако при запуске top с ключами -bn1 (пакетный режим, 1 итерация) строка Cpu (s) не переключается с запуска на запуск в течение секунд, минут или даже часов.

Первая итерация top -b возвращает проценты с момента загрузки, поэтому нам нужно как минимум две итерации (-n 2), чтобы получить текущий процент. Итак, если вы запустите top один раз, прежде чем использовать его для сбора данных, у вас все будет хорошо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .