LinuxForum.Fans
Тема

[Решено] как перевести bps в объем данных (в байты)

Автор: Linux777 19 сообщений 3480 просмотров
#320777

Доброго дня, не знаю куда именно писать, поэтому написал сюда.

Вообщем, имею данные из MRTG по скорости передачи информации в bps (bits per second). Мне надо понять, можно эти данные перевести в объем трафика который был скачен пользователями за эти дни. То есть из данные по скорости передачи информации bit per second (bps) надо получить данные трафика в МБ. Возможно ли такое вообще? Если да, каким образом это делать? Спасибо! гугл пока точного ответа не дал. там просто перевод величин одной из другой. Так сказать конвертер, а тут величины разного характера, но поиск продолжаю. Просто может кто делал и знает, или это невозможно и задача не решается так.

в примере приведен листинг за 5 дней.

Показать
Target Sample Date YMD Sample Time HHMM Count in seconds Incoming traffic in bps Outgoing traffic in bps
GigabitEthernet0/0 14.05.2012 4:00 1336953600 8804.4 23084.0
GigabitEthernet0/0 15.05.2012 4:00 1337040000 34767.7 248009.2
GigabitEthernet0/0 16.05.2012 4:00 1337126400 47620.0 228628.4
GigabitEthernet0/0 17.05.2012 4:00 1337212800 45917.7 365342.1
GigabitEthernet0/0 18.05.2012 4:00 1337299200 54079.7 232192.3
#320781

1 байт = 8 бит, вот и дели все на 8
8804.4 / 8 = 1100.55 MB

#320783

Э-э-э-э-э-э... А разделить всё это на 8388608 (8*1024*1024)? не?
2 последних столбца для kBps (разделил на (8*1024)):

Показать

Incoming traffic in kBps Outgoing traffic in kBps
1,07 2,82
4,24 30,27
5,81 27,91
5,61 44,6
6,6 28,34
#320784
i2ks написал:
1 байт = 8 бит, вот и дели все на 8
8804.4 / 8 = 1100.55 MB

8804.4 / 8 = 1100.55 байт/с

#320787

да-да я там опечатался.

#320794

Кажется понял, вообщем делается так, имею данные за месяц, например за апрель.

Показать

GigabitEthernet0/1 01.04.2013 4:00 1364774400 43022,3 27145,1
GigabitEthernet0/1 02.04.2013 4:00 1364860800 421965,5 79111
GigabitEthernet0/1 03.04.2013 4:00 1364947200 387008,7 112370,8
GigabitEthernet0/1 04.04.2013 4:00 1365033600 153861,6 55858,9
GigabitEthernet0/1 05.04.2013 4:00 1365120000 242431,4 139156,2
GigabitEthernet0/1 06.04.2013 4:00 1365206400 200449,2 67390,7
GigabitEthernet0/1 07.04.2013 4:00 1365292800 55283,5 31059,4
GigabitEthernet0/1 08.04.2013 4:00 1365379200 54797,9 30514,7
GigabitEthernet0/1 09.04.2013 4:00 1365465600 347809,1 131718,1
GigabitEthernet0/1 10.04.2013 4:00 1365552000 470717,8 106829
GigabitEthernet0/1 11.04.2013 4:00 1365638400 302253,3 93959,8
GigabitEthernet0/1 12.04.2013 4:00 1365724800 263071 61638,3
GigabitEthernet0/1 13.04.2013 4:00 1365811200 252251,5 85380,6
GigabitEthernet0/1 14.04.2013 4:00 1365897600 100861,3 52527,4
GigabitEthernet0/1 15.04.2013 4:00 1365984000 74088,3 58788,1
GigabitEthernet0/1 16.04.2013 4:00 1366070400 519735,4 103502,1
GigabitEthernet0/1 17.04.2013 4:00 1366156800 600676 126814,5
GigabitEthernet0/1 18.04.2013 4:00 1366243200 307368,3 102750,5
GigabitEthernet0/1 19.04.2013 4:00 1366329600 849521,1 87830,1
GigabitEthernet0/1 20.04.2013 4:00 1366416000 324852,2 77044,2
GigabitEthernet0/1 21.04.2013 4:00 1366502400 51763,6 30133,7
GigabitEthernet0/1 22.04.2013 4:00 1366588800 53231,4 32152,1
GigabitEthernet0/1 23.04.2013 4:00 1366675200 541349,7 106982,3
GigabitEthernet0/1 24.04.2013 4:00 1366761600 364883,2 87505,1
GigabitEthernet0/1 25.04.2013 4:00 1366848000 503851,3 92505,9
GigabitEthernet0/1 26.04.2013 4:00 1366934400 699989 102205,2
GigabitEthernet0/1 27.04.2013 4:00 1367020800 294803,4 78610
GigabitEthernet0/1 28.04.2013 4:00 1367107200 52530,8 34741,5
GigabitEthernet0/1 29.04.2013 4:00 1367193600 86171,4 52903,5
GigabitEthernet0/1 30.04.2013 4:00 1367280000 530137,5 90451,5

9150736,7 2339580,3


Просуммировав все данные за календарный месяц, получил данные bps т.е бит в секунду за месяц: 9150736,7 (in) 2339580,3 (out).

Далее перевод величин. Сначала формулы:

text

а)   1 байт в секунду = бит секунда /8
б)   байт день = байт/с * 60*60*24

Теперь по формулам делаем перевод:

text
1. найдем сколько байт в секунду, по формуле "а",  получим 9150736,7/8=1143842,088              2339580,3/8=292447,5375
это мы получили данные сколько байт в секунду. т.е перевели биты в байты за секунду.

2. Теперь найдем байты в день, используем формулу "б", получим

1143842,088*60*60*24=98827956360 где 60 это минута, 60 час, и 24 это сутки 292447,5375*60*60*24=25267467240 аналогично

3. Теперь зная значения байтов в день, просто сделаем перевод данных. Мне удобней значения в Гб, а можно и в Мб. Для помощи воспользовался конвертером от Яндекса http://yandex.ru/yandsearch?clid=1667645&lr=213&text=%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4+%D0%B1%D0%B8%D1%82+%D0%B2+%D0%B1%D0%B0%D0%B9%D1%82%D1%8B.

вообщем 92,041 ГБ это IN 23,532 Гб это OUT.

итого 115,573 Гб за апрель было скачено пользователями.

#320800
"basileus⇓" написал:
8804.4 / 8 = 1100.55 байт/с

ага, я тоже подумал, что это не Мб, а байт/с
а в целом, я чет давненько не считал. но посидев часок, сделал подсчет. спасибо ))

#320805
"Linux777⇓" написал:
Кажется понял, вообщем делается так, имею данные за месяц, например за апрель.

Я для простейшего учёта трафика использую vnstat

text

lupo@gentoo-laptop ~ % vnstat -i wlan0
Database updated: Thu May 16 18:20:59 2013

wlan0 since 20.06.2012

rx: 152,25 GiB tx: 69,21 GiB total: 221,46 GiB

monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- апр. '13 17,02 GiB | 7,30 GiB | 24,32 GiB | 78,72 kbit/s мая '13 6,50 GiB | 2,34 GiB | 8,84 GiB | 54,44 kbit/s ------------------------+-------------+-------------+--------------- estimated 12,79 GiB | 4,59 GiB | 17,38 GiB |

daily rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- yesterday 51,52 MiB | 20,78 MiB | 72,30 MiB | 6,85 kbit/s today 8,48 MiB | 4,89 MiB | 13,37 MiB | 1,66 kbit/s ------------------------+-------------+-------------+--------------- estimated 10 MiB | 5 MiB | 15 MiB |

#320846
"basileus⇓" написал:
i2ks пишет:

1 байт = 8 бит, вот и дели все на 8
8804.4 / 8 = 1100.55 MB

8804.4 / 8 = 1100.55 байт/с

кстати, предложенный вариант, это не совсем то что надо, так сказать мысль на полпути, не до конца домысленная)). но мысль была верная. просто в предложенном варианте был просто перевод скорости в другие единицы из bps в Mbps. а Мне надо было немного другое, это и посложней, нежели просто оперировать приставками "Си" - кило, мега. а есть и аналогичное действие обратное этому. например имеется файл скажем 50Гб, и канал шириной 10 мб/с, надо узнать, за сколько времени пользователь скачает файл.

#320847

Эх, а я хотел предложить проинтегрировать график bps по времени. :)

#320849
"Lupo Alberto⇓" написал:
Я для простейшего учёта трафика использую vnstat

спасибо, посмотрю. Правильно понял, эту программу можно использовать на сервере,и даже необязательно на нем должен быть прокси? или должно что-то дополнительно стоять, чтобы можно было vnstat использовать?

кстати, это серверное приложение или это надо на роутер ставить, а с netflow работает? никогда не слышал об этом. ну откуда он данные берет, чтобы получить rx and tx за определенный промежуток времени.

#320851
"Vascom⇓" написал:
Эх, а я хотел предложить проинтегрировать график bps по времени. ab

не совсем понял? поточней расскажи пожалуйста )

#320853

Ну, как я понял, bps - это "биты в секунду", то есть скорость передачи данных. Скорость может меняться во времени, ведь так?
Чтобы получить объём данных надо эту скорость проинтегрировать, то есть сложить все значения скорости за промежутки времени (в течение которых была данная скорость).

Например, 30 сек. была скорость 100bps, ещё 30 сек. скорость 50bps и затем 60 сек. скорость 150bps. Итого данных передано: 100*30+50*30+150*60=13500 бит, ну или 13500/8=1687.5 байт = 1.6479 кбайт.

#320859
"Vascom⇓" написал:
Ну, как я понял, bps - это "биты в секунду"

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

Vascom,Lupo Alberto, i2ks, Basileus вообще конечно, есть разные механизмы воздействия и контролирования сети, сетевых ресурсов - оборудование сетевого, объем переданного трафика, ширина канала и т.д и т.п. Я уже почти все реализовал с нуля с помощью Zabbix + Cacti. Но есть некоторые клиенты наши, где еще до меня стоит и работает MRTG. Данные как и cacti получаются в bps (скорость в битах/с). Но чтобы получить объем, надо делать перерасчет одной величины в другую.

Vascom,Lupo Alberto А вообще конечно хорошо знать и уметь как можно больше способов воздействия и мониторинга на всю сетевую структуру, так сказать, чем больше ты знаешь механизмов мониторинга, и больше попробывал сам, тем больше для себя можешь определиться что наиболее лучше подходит для той или иной задачи связанной с сетью и оборудование в сети (железо+сервера).

зы. совершенству нет предела:)

#320863
Linux777 написал:
[quote="basileus⇓"]i2ks пишет:

1 байт = 8 бит, вот и дели все на 8
8804.4 / 8 = 1100.55 MB

8804.4 / 8 = 1100.55 байт/с

кстати, предложенный вариант, это не совсем то что надо, так сказать мысль на полпути, не до конца домысленная)). но мысль была верная. просто в предложенном варианте был просто перевод скорости в другие единицы из bps в Mbps. а Мне надо было немного другое, это и посложней, нежели просто оперировать приставками "Си" - кило, мега. а есть и аналогичное действие обратное этому. например имеется файл скажем 50Гб, и канал шириной 10 мб/с, надо узнать, за сколько времени пользователь скачает файл.[/quote]
Имея только априорные данные об объёме файла и ширине канала можно только определить минимально необходимое время для передачи этого файла. Здесь не учитывается изменение скорости канала в зависимости от его загрузки (по этому каналу не только же этот файл бежит :) ), не учитываются разрывы соединения и простои. Так что с помощью данной утилиты можно просто взять статистику последних столбцов за определённое время перевести их в нужные величины и сложить в конце. Ну или проинтегрировать (одно и то же). В принципе тут просто надо все это хозяйство распарсить и передать в формулу расчёта объёма. Но в парсинге я слабоват, мда-с...

#320864
Linux777 написал:
[quote="Vascom⇓"]Ну, как я понял, bps - это "биты в секунду"

ага, это биты в секунду, это скорость передачи данных. На мониторинге именно в bps отображается данные. Но вот это только данные по скорости, а вот данные сколько было скачено там нет, данные взяты из MRTG.
[/quote]
Третий столбец справа (Count in seconds) умножить на скорость обмена = объём

#321372
"Lupo Alberto⇓" написал:
Я для простейшего учёта трафика использую vnstat

благодарю. попробовал. пока инфы мало, т.к. только установил, но выхлоп воть :)

vnstat -d

eth0 / daily

day rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
05/22/13 3.35 MiB | 289 KiB | 3.63 MiB | 0.77 kbit/s
------------------------+-------------+-------------+---------------
estimated -- | -- | -- |

ключики поизучаю. а вот такой вопрос не вкурсе, если мне на сервер приходит вообще весь трафик, эта утилита может разбрать его и сказать по юзерам, кто куда ходит? просто в этой теме я писал подробно что делаю Proxy (squid) + cisco (port monitoring). Можно так мониторить трафик?

ну, а так считает, что уже хорошо.

#321381
"Linux777⇓" написал:
разбрать его и сказать по юзерам, кто куда ходит?

нет

#321386
"i2ks⇓" написал:
нет

благодарю, так я и думал))

вообщем, данная тема закрыта, задача перевода bps в байты хоть вручную, хоть с помощью vnstat успешно решена, а также выснил, что для юзеров не подходит это. на этом все. спасибо всем.

Войдите или зарегистрируйтесь, чтобы ответить.