Как я могу получить подобную вершине статистику ЦП от оболочки?

Согласно этой странице Vim здания, Вам будут нужны эти зависимости от Ubuntu

sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \
   libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \
   libcairo2-dev libx11-dev libxpm-dev libxt-dev

Выполненный configure снова.

./configure --with-features=huge --enable-gui=gnome2 --enable-cscope

Я попробовал, и все, казалось, были включены.

12
17.12.2011, 22:37
4 ответа

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

#!/bin/bash
read cpu a b c previdle rest < /proc/stat
prevtotal=$((a+b+c+previdle))
sleep 0.5
read cpu a b c idle rest < /proc/stat
total=$((a+b+c+idle))
CPU=$((100*( (total-prevtotal) - (idle-previdle) ) / (total-prevtotal) ))
12
27.01.2020, 19:55
  • 1
    Linux имеет некоторую большую информацию в/proc/-см. linux.die.net/man/5/proc для всех положительных героев. Просто остерегайтесь этого, это Linux только. Нет действительно никакого межплатформенного способа получить ту информацию, если Вы не пользуетесь библиотекой как Sigar. –  Pat Notz 19.12.2011, 19:16
  • 2
    Идея хороша, но некоторые детали являются неправильными. Неактивное значение является 5-м столбцом, и необходимо также добавить iowait столбец (6-й столбец) для получения разумного процента. Чтобы быть полностью корректными, необходимо было бы добавить все значения "отдыха" также, но они являются часто очень маленькими. –  Peter Eisentraut 07.02.2013, 18:44
  • 3
    Idle является пятой колонной при подсчете столбца "CPU". Иначе это является четвертым. –  SunSparc 31.12.2014, 01:08

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

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

6
27.01.2020, 19:55
  • 1
    я попробовал sar прежде со смешанными результатами. Я собираюсь пойти с ответом @jasonwryan сюда, потому что я могу легко изменить его для представления использования с обоими из моих ядер процессора. –  n0pe 17.12.2011, 23:11

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

3
27.01.2020, 19:55

То, что я обнаружил, похоже на человека, который задавал вопрос выше, по крайней мере, на CentOS 6. Если я запустил top в пакетном режиме всего за одну итерацию, кажется, что он наберет ту же цифру, как если бы он имел тенденцию к начните с того, что он запомнил в последний раз. Кажется, что Top должен накапливать хотя бы пару цифр, чтобы получить дельты, которые давали бы вам правильные проценты. Проверив более 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'"
0
27.01.2020, 19:55

Теги

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