Как я могу получить статистику о процессорах, похожих на процессор, из командной оболочки?

Я пытаюсь получить точное чтение моего используемого процессора (в процентах) top . Это команда, которую я запускаю для тестирования:

 top -n1 | awk '/Cpu\(s\):/ {print $2}' 

Это возвращает:

 10.7%us, 

Какая правильная часть данных я хочу. Тем не менее, каждый раз, когда я запускаю команду, я получаю тот же результат, хотя я использую разные нагрузки на свою систему (и не говоря уже о том, что htop говорит мне, что мое использование отличается). Кажется, что всякий раз, когда я начинаю top , мое использование процессора одинаково. Только после нескольких фреймов он дает мне правильные значения.

Мне кажется, что я не могу разобрать результат top таким образом, поэтому я ищу другие надежные приложения, которые дадут мне точное чтение из оболочки. Мне очень нравится, как htop может дать мне чтение в ядре.

Я пробовал iostat и mpstat но они, похоже, дают неточные и «медленные изменения».

4 Solutions collect form web for “Как я могу получить статистику о процессорах, похожих на процессор, из командной оболочки?”

Я использую этот скрипт (из этого потока на досках Arch ):

 #!/bin/bash read cpu abc previdle rest < /proc/stat prevtotal=$((a+b+c+previdle)) sleep 0.5 read cpu abc idle rest < /proc/stat total=$((a+b+c+idle)) CPU=$((100*( (total-prevtotal) - (idle-previdle) ) / (total-prevtotal) )) 

Посмотрите и сэр . Реализации могут варьироваться в широких пределах от nix до nix, но это должно дать вам базовую статистику системы при заданных моментальных снимках. Я не уверен, насколько точны значения в момент, когда команда была сначала инициализирована, но вы можете поиграть, чтобы увидеть, как она сравнивается с top , iostat и т. Д.

Выходные данные основаны на столбцах, например, сверху, поэтому вы должны иметь возможность выводить выходные данные на awk или cut чтобы манипулировать результатами.

Вы посмотрели на collectl ? Это удобно, потому что вы можете адаптировать результат к вашим потребностям. См .: http://collectl.sourceforge.net/

То, что я нашел, похоже на человека, который задал вопрос выше, по крайней мере, на CentOS 6. Если я запускаю топ в пакетном режиме только для одной итерации, он, похоже, собирает ту же фигуру, почти как если бы ее тенденция заключалась в том, чтобы начать с того, что он в последний раз запоминает показ. Кажется, что вершине нужно накопить хотя бы пару цифр, чтобы получить дельт, чтобы дать вам правильные проценты. Испытав более 10 итераций, я обнаружил, что вторая фигура, которая появилась, показала достаточную дифференциацию в каждом прогоне. Таким образом, его достаточно легко получить эту строку через

 top -b -n 2 | grep Cpu | tail -1 

Мне нравится включать это с временем безотказной работы для загрузки и grep-фильтром выбранных процессов из ps, таких как запросы postgres. Очень простой монитор можно выразить с помощью псевдонима:

 alias postgresmon="watch -d 'uptime;top -b -n 2 | grep Cpu | tail -1;ps -ef | grep postgres\: | grep -v idle'" 
  • Почему linux использует swap-память, когда еще нет неиспользованной физической памяти
  • Как правильно запустить команду «сверху» через SSH?
  • Понимание% CPU при работе с верхней командой
  • Потребление памяти в течение переменного периода времени
  • Как определить статус моего сервера
  • Если я хочу создать графический интерфейс, который отображает точно те же данные, что и команда TOP в LINUX, откуда я получу данные?
  • Добавить временные метки для вывода команды «top»
  • Что может послужить причиной перехода в безопасное состояние спящего режима для этого конкретного процесса?
  • Значительная часть используемой памяти не учитывается пользовательскими процессами
  • Извлечь текст из одной итерации сверху
  • В Linux «топ» команда: какие мы, sy, ni, id, wa, hi, si и st (для использования ЦП)?
  • Linux и Unix - лучшая ОС в мире.