Мы знаем, что top
это команда для получения загрузки ЦП в Linux и других способов, включая
cat /proc/stat
top.
Каковы другие способы получения загрузки процессора в командной строке Linux?
Сценарий использования: выходные данные этой команды будут использоваться сценарием для непрерывной регистрации загрузки процессора. top
и /proc/stat
дать подробное использование, которое трудно войти. Есть ли более простой способ получить информацию о процессоре?
linux
command-line
Фазиль
источник
источник
sed
результат, если хотите только значение.top
а другой дает очень полезную команду. Это не я использую X, как насчет тебя? вопрос, но как мне сделать X вопрос. Голосование возобновить.Ответы:
Как уже говорили другие, возможно, лучший способ
top
. Он требует небольшой настройки и небольшого разбора, но вы можете получить его, чтобы получить текущее использование процессора в процентах.top
распределяет загрузку процессора между пользователем, системными процессами иnice
процессами, нам нужна сумма трех. Итак, мы можем работатьtop
вb
режиме atch, который позволяет нам анализировать его вывод. Однако, как объяснено здесь , 1-я итерацияtop -b
возвращает проценты с момента загрузки, поэтому нам нужно как минимум две итерации (-n 2
) для получения текущего процента. Чтобы ускорить процесс, вы можете установить значениеd
elay между итерациями равным0.01
. Наконец, выgrep
в строке, содержащей проценты ЦП, а затем используетеgawk
для суммирования пользовательских, системных и хороших процессов:Я думал, что вы также можете получить эту информацию
ps -o pcpu ax
, добавив% использования каждого запущенного процесса. К сожалению, как объясняется здесь ,ps
«возвращает процент времени, потраченного на выполнение в течение всего времени жизни процесса», что не является тем, что вам нужно.РЕДАКТИРОВАТЬ
Исходя из вашего комментария, ваша версия
top
отличается от моей, и вы должны использовать это вместо:И, чтобы избежать проблем с локализацией, установите языковой стандарт C:
источник
sar
это окончательный способ сделать это. Так, например,sar -u
выведет что-то вроде этого:Вы не говорите, какой Linux вы используете, но для CentOS / RedHat вам нужно установить
sysstat
пакет, и я думаю, что то же самое в Debian / Ubuntu.Вы также можете использовать sar для сбора статистики ad hoc :
Будет собирать статистику каждые 60 секунд 600 раз, так что 600 минут.
источник