dadv: (Default)
Choose your future ([personal profile] dadv) wrote2011-10-24 08:11 pm
Entry tags:

Тяжела и неказиста

Балансировать входящий трафик по трём каналам с BGP, имея всего два десятка префиксов, дело не вполне тривиальное. Отчаявшись получить от ребят, управляющих биллингом, процентное потребление входящего трафика префиксами, отзеркалировал netflow-трафик (v5) на свою FreeBSD и нарисовал перловый скрипт на 110 строк, который через Net::Pcap выбирает netflow из bpfilter, через Net::NetPacket достаёт из трафика собственно netflow, через Net::Flow его парсит и считает нужные мне проценты.

На десяти мегабитах отзеркалированного netflow скрипт в пиках кушает по 90% одного из четырех ядер Xeon E5420 2.5Ghz, причём всё это время он проводит внутри Net::Flow::decode(). К счастью, пики случаются не всё время. Но ставить в постоянную работу такой CPU-hog боязно.

Update: выкинул Net::Flow и переписал скрипт на ручное декодирование netflow v5 через unpack(). Теперь в пике скрипт грузит CPU на 15% (и это ещё не чистил циклы особо).


Post a comment in response:

This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org