Как получить среднюю сетевую нагрузку вместо момента

Добро пожаловать,

Я использую носатый для наблюдения статистики сетевой нагрузки с выборкой каждые 8 секунд для получения несколько более гладкой диаграммы истории. К сожалению, все значения, которые я получаю, не являются средними в течение этих 8 вторых периодов, но они выбираются от намного меньшего отрезка времени, таким образом, диаграммы являются изменчивым тем же, как будто они были выбраны с 1 секунды или меньше.

Там какой-либо путь состоит в том, чтобы стать носатым (или по крайней мере Системный монитор) свойства системы отображения, усредненные в течение указанного количества времени, точно так же, как диспетчер задач Windows делает?

Я хотел бы иметь носатое использование жесткого диска дисплея от iostat, но будет мало использования если это, если носатые моментальные значения отчетов, не усредняемые со временем.

править: Существует полурешение определенной сетевой проблемы в утилите ifstat. Эта программа, если выполнено

ifstat 8 1

действительно дает надлежащие средние числа сетевой нагрузки по 8-секундному интервалу. Но от очевидных причин этот вызов берет 8-секундный для завершения. Я пытаюсь изучить достаточно lua для получения этой работы.

3
задан 1 September 2012 в 17:26

2 ответа

Если Вы хотите, чтобы программа дала Вам хороший обзор сетевой активности, vnstat вероятно, что Вы что; как я отмечаю ниже Вас, может использовать названную программу vnstati чтобы дать Вам график требуемого времени структурируют от vnstat база данных.

Во-первых, загрузите программы:

sudo apt-get install vnstat vnstati

Настройте базу данных первоначально, если интерфейс, который Вы хотите контролировать, eth0; можно использовать эту команду для обновления базы данных позже:

sudo vnstat -u -i eth0

Если Ваш интерфейс по умолчанию не eth0, можно изменить его любой путем редактирования интерфейсной записи по умолчанию в /etc/vnstat.conf или просто путем создания a .vnstat файл в Вашей домашней папке и добавлении Interface "eth1" наверху файла.

Vnstat контролирует Ваше использование сети на указанном адаптере, хотя Вы видите живые детали путем ввода:

vnstat -l -i eth0

Можно также просмотреть статистику из командной строки по часам, неделя, месяц, и т.д. (хотя лучше делать, обновление базы данных сначала с sudo управляет далее выше). Вот команда в качестве примера для отображения ежедневного использования: (замена d для h для почасового, w для еженедельника)

vnstat -d -i eth0

Намного больше статистического анализа доступно с vnstat, посмотрите man vnstat или страницы справочника Ubuntu онлайн.

Посмотрите графики от vnstati ниже использования следующих команд для показа почасового использования и ежедневного использования: (Можно также показать еженедельно, ежемесячно, и т.д., времена и отобразиться, данные по-разному) (Снова делают обновление базы данных с vnstat прежде, чем выполнить их vnstati команды)

vnstati -h -i eth1 -o net.png
vnstati -d -i eth1 -o net2.png

(Первый график является несколько пробелом, поскольку я только что начал использовать vnstat и по тому, как мой интерфейс по умолчанию eth1, тогда как Ваш, вероятно, eth0)

Для большего количества опций на vnstati и вся статистика от vnstat база данных, которую это может произвести, видит man vnstati и страницы справочника Ubuntu онлайн.

enter image description here enter image description here

1
ответ дан 21 October 2019 в 11:39

Ну, это могло бы быть очень сыро (я не эксперт в сценариях программирования, и это - моя самая первая программа, записанная в Lua), но это действительно решает мою проблему.

Это работает путем вызова делания-netstat в фоновом режиме, которое называет ifstat который средняя статистика для немного меньше, чем носатый интервал обновления (8 секунд). Результаты записаны во временный файл, который впоследствии читается в следующем выполнении обновления носатых.

Из-за диска ввод-вывод это не рекомендуемое решение для пользователей дисков SSD. Статистические данные также не составляют 0,5 вторых разрыва, которые существуют для предотвращения условий состязания между, делают-netstat и носатое.

Я создал эти несколько файлов в ~/.conky каталог. сделайте-netstats.sh:

#!/bin/sh
ifstat -i wlan0 -n $1 1|tail -n 1 >~/.conky/wifi-stats-new.txt
cp ~/.conky/wifi-stats-new.txt ~/.conky/wifi-stats.txt

call-make-netstats.sh: (по некоторым причинам, ~'', поскольку не работает ярлык на корневой каталог, таким образом, я поместил весь домашний путь к папке.)

#!/bin/sh
/home/adam/.conky/make-netstats.sh $1 &

netstat.lua:

do
    function conky_prepare_wlan_stats(czas)
        os.execute("/home/adam/.conky/call-make-netstats.sh " .. czas)
    end
    function conky_get_wlan_input()
        local f = io.open("/home/adam/.conky/wifi-stats.txt", "r")
        local str = f:read("*all")
        local sin = string.gsub(str, "^%s*([%d%.]+)%s*([%d%.]+)%s*","%1")
        return sin
    end
    function conky_get_wlan_output()
        local f = io.open("/home/adam/.conky/wifi-stats.txt", "r")
        local str = f:read("*all")
        local out = string.gsub(str, "^%s*([%d%.]+)%s*([%d%.]+)%s*","%2")
        return out
    end
end

И наконец мы используем его в .conky.rc следующим образом:

${font Goudy Bookletter 1911:style=Normal}WIRELESS${font} ${hr 2}
${voffset 4}${font PizzaDude Bullets:size=14}O${font}   Up: ${lua conky_get_wlan_output} ${alignr} ${voffset -10} ${lua_graph  conky_get_wlan_output 20,200 300}
${lua conky_prepare_wlan_stats 7.5} #The function prepares statistics for another refresh of conky stat. 7.5 is slightly less then 8 seconds to prevent from overlap.1

${voffset -30}${font PizzaDude Bullets:size=14}U${font}   Down: ${lua conky_get_wlan_input} ${alignr} ${voffset -10} ${lua_graph  conky_get_wlan_input 20,200 300}
0
ответ дан 21 October 2019 в 11:39

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

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