Показать использование ЦП с помощью команды [duplicate]

Я хочу увидеть использование ЦП.
Я использовал эту команду:

top -bn1 | grep "Cpu(s)" | 
           sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | 
           awk '{print 100 - $1}'

Но она возвращает 100%.
Какой правильный путь?

18
задан 7 March 2017 в 09:47

3 ответа

Для получения использования CPU лучший способ состоит в том, чтобы считать/proc/stat файл. См. man 5 proc для большего количества справки.

существует полезный сценарий, записанный Paul Colby, которого я нашел здесь

#!/bin/bash
# by Paul Colby (http://colby.id.au), no rights reserved ;)

PREV_TOTAL=0
PREV_IDLE=0

while true; do

  CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics.
  unset CPU[0]                          # Discard the "cpu" prefix.
  IDLE=${CPU[4]}                        # Get the idle CPU time.

  # Calculate the total CPU time.
  TOTAL=0

  for VALUE in "${CPU[@]:0:4}"; do
    let "TOTAL=$TOTAL+$VALUE"
  done

  # Calculate the CPU usage since we last checked.
  let "DIFF_IDLE=$IDLE-$PREV_IDLE"
  let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL"
  let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10"
  echo -en "\rCPU: $DIFF_USAGE%  \b\b"

  # Remember the total and idle CPU times for the next check.
  PREV_TOTAL="$TOTAL"
  PREV_IDLE="$IDLE"

  # Wait before checking again.
  sleep 1
done

, сохраняют его к cpu_usage, добавляют, выполните разрешение chmod +x cpu_usage и работайте:

./cpu_usage

для остановки сценария поразите Ctrl + c

0
ответ дан 7 March 2017 в 09:47

Почему бы не использовать htop [интерактивное средство просмотра процесса]? Для установки его откройте окно терминала и тип:

sudo apt-get install htop

Также видят man htop для получения дополнительной информации и как настроить его.

enter image description here enter image description here

0
ответ дан 7 March 2017 в 09:47

Я нашел решение, которое работает приятно, здесь это:

top -bn2 | grep '%Cpu' | tail -1 | grep -P  '(....|...) id,' 

я не уверен, но это смотрит на меня, что первое повторение top с -n параметр возвращает некоторые фиктивные данные, всегда то же во всех моих тестах.

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

  1. Получают 2 первых кадра вершины: top -bn2
  2. Затем от тех кадров проводят только строки, которые содержат '%Cpu': grep '%Cpu'
  3. Затем только берут последнее вхождение / строка: 'хвост-1''
  4. Затем добирается, неактивное значение (имеет 4 или 5 символов, пространство, "идентификатор"): grep -P '(....|...) id,'

Hope это помогает, Paul

enter image description here

0
ответ дан 7 March 2017 в 19:47
  • 1
    Спасибо за ответ, но после добавления nouveau.nomodeset, я все еще застрял бы на экране-заставке с теми же строками, отображенными в изображении. Я don' t знают, является ли это персистентная проблема с графическим драйвером или чем-то еще – user459585 17 October 2015 в 18:44

Другие вопросы по тегам:

Похожие вопросы: