LINUX.ORG.RU
ФорумAdmin

измерить скорость байтов в linux

 


0

1

Допустим zabbix (либо какой-то другой мониторинг) врёт, собирая данные о скорости на сетевом интерфейсе linux с помощью ключа net.if.speed ну или zabbix_agent слишком старый и этот ключ не поддерживает. Хочу попробовать собирать данные о скорости вручную при помощи скрипта, а потом передавать их агенту через UserParameter. Допустим скрипт будет в качестве исходных данных брать содержимое счётчиков в /sys/class/net/eth0/statistics/rx_bytes и /sys/class/net/eth0/statistics/tx_bytes и через равные промежутки времени вычислять скорость. Вот только на чём писать скрипт, если на bash, с использованием субшеллов, awk и сохранением переменных в файле, то такой скрипт будет завершаться с задержкой и данные будут неточными, а в нормальные скриптовые языки, типа python я не умею. Наверняка есть уже готовые решения этой задачи и велосипед изобретать не нужно, подскажите что-нибудь. Также интересует как измерить скорость конкретной части трафика, например только http-трафик, допустим я возьму исходные данные из счётчика iptables, дальше что?

★★★★★

Допустим скрипт будет в качестве исходных данных брать содержимое счётчиков в /sys/class/net/eth0/statistics/rx_bytes и /sys/class/net/eth0/statistics/tx_bytes и через равные промежутки времени вычислять скорость.

Как? Или вы о «средней по больнице»?

anc ★★★★★
()

Пиши на си, там кода на 1 страницу вся прога и сразу избавишься от скриптопроблем.

firkax ★★★★★
()
Ответ на: комментарий от sunny1983

И какое отношение ваша формула имеет к «скорости»?
Поясню. Вы пролетели 5к км на самолете, потом «сели на пенек и кушаете пирожок», на момент когда вы «сели на пенек» у вас скорость огого... но вот через десять лет сидения на пеньке согласно вашей формуле «скорость» у вас заметно упадет.

anc ★★★★★
()

Вот только на чём писать скрипт, если на bash, с использованием субшеллов, awk и сохранением переменных в файле, то такой скрипт будет завершаться с задержкой и данные будут неточными, а в нормальные скриптовые языки, типа python я не умею. 

Все это будет измерение погоды на Марсе, т.к. что заббикс, что скриптота — это «пробы» не измерительные, а показательные. С учетом латентности, холодных стартов и сборки мусора за скриптами, будет много разнообразного шума. Но главное что нужно понять, какая точность нужна :) и нужна ли «такая» :)

slackwarrior ★★★★★
()
Ответ на: комментарий от anc

uptime-uptime0 равно 30 секундам, то есть времени с момента последнего запуска скрипта, так как скрипт запускается zabbix_agent, а тот в свою очередь дёргается zabbix. Просто я хочу вместо константы равной 30 каждый раз это время вычислять, на случай, если произойдёт задержка и реальный промежуток между предыдущим и текущим запуском скрипта окажется больше.

sunny1983 ★★★★★
() автор топика
Ответ на: комментарий от anc

Если считаете, что мой ход мыслей - неправильный, то может быть выскажетесь как правильно? А то уже 6 комментариев с начала темы прошло, а всё ни о чём.

sunny1983 ★★★★★
() автор топика
Ответ на: комментарий от sunny1983

А что не понятно было? Скорость полета байтиков зависит не только от «вашего места имения» но и от того откуда/куда и как оно летит. С МКС до антарктиды будет одна скорость, между двумя компьютерами соединенными напрямую 10 гигабиткой другая.
Но это ещё не всё, например у вас 10гбит прямой линк, но вы передали за неделю один файл в 1кб, вы на основании 1кб за неделю хотите получить данные о скорости вашего интерфейса?

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)

Обычно при мониторинге интересуют не только средние величины.

Несколько лет назад я родил мониторилку , которая считает скорость для интервала мониторинга и пиковые значения для заданного интервала (обычно 3-5 секунд).

Мониторилка расчитана на чтение файлов ( procfs/sysfs ).

Результаты мониторилки в виде файлов ( fusefs ).

vel ★★★★★
()

ну вообще забикс сам умеет вычитать из текущего показания предыдущее, это настраивается в свойствах датчика, поэтому для твоей задачи нет нужды крутить какие-то скрипты сложнее cat /path/to/file

cobold ★★★★★
()

допустим я возьму исходные данные из счётчика iptables, дальше что?

как что? Конечно, золотой ключ для чтения всего SSL/TLS и немного ИИ для распознания и посчёта нужного типа трафика.

targitaj ★★★★★
()
Ответ на: комментарий от cobold

Я настолько глубоко zabbix не знаю. То есть мне достаточно передавать содержимое /sys/class/net/eth0/statistics/rx_bytes и /sys/class/net/eth0/statistics/tx_bytes заббиксу, а последний вычислит скорость сам, какие настройки нужно сделать на стороне заббикса?

sunny1983 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.