Главная страница | Добавить в избранное    
   

 

» Статьи » Оценка производителности графов Netgraph.

   
main1
pix
 

Оценка производителности графов Netgraph.

Статьи  
pix pix pix
На примере возможных схем анализа трафика, средствами ng_netflow.

В данном документе приведена простейшая методика оценки производительности графов Netgraph на примерах "сбора" трафика, проходящего в обоих направлениях, через интерфейс.

Большая часть схем представляет лишь теоретичекие изыскания и не испытывалась на практике.
Для анализа схем используются примитивные педставления о завимости производительности системы от количества узлов в графе.
Для упрощения, при анализе не учитывается внутреннее устройство подсистемы Netgraph и отдельныхузлов.

Условные обозначения:
    Длина графа - количество узлов, через которые проходит каждый пакет, по пути через netgraph.
    Для нивелирования схем узел em0: учитываться не будет.
    Предполагается, что чем длиннее граф, тем больше ресурсов запрачивается на прохождение каждого пакета.

    Количество опреций копирования и перенаправления данных - показывает количество соответствующих опрераций затрачиваемых при прохождении через граф.
    Чем больше опрераций копирования и перенаправления, тем тем больше ресурсов запрачивается при прохождении через граф. Однако, перенаправление менее ресурсоемко в стравнении с копированием.
    Для упрощения, внутренне устройство узлов, рассматриватся не будет.
    Копирование лишь подразумевает, что после прохождения узла создается 2 и более копии данных.
    Перенаправление - обозначает, лишь то, что количество экземляров данных остается прежним.


    alt


Узел ng_netflow имеет 3 типа хуков: ifaceX, outX, export
При прохождении пакета в направлении ifaceX - outX, анализируются заголовки пакета. Иформация о пакете заносится функцией hash_insert() в hash-таблицу. При достижении определенных условий функция export_send() формирует пакт netflow и отравляет в хук export.

Однако, при нормальных условиях, количество пакетов отправляемых в хук export значительно меньше количества пакетов, проходящих через узел в направлении ifaceX - outX. Таким образом, вкладом export_send() можно пренебречь.
Можно считать, что производится лишь опрерация перенаправления.

При прохождении пакета в направлении outX - ifaceX, данные сразу перенаправляются в хук ifaceX.

Таким образом, при прохождении прафика через узел ng_netflow производится
0 операций коприования
1 операция перенаправления данных.


Оценка производителности графов Netgraph.

Оценка производителности графов Netgraph.

Узел ng_one2many может работать в 2-х режимах:
XMIT_ALL - пакет приходящий на хук one перенаправляется в один из хуков many, в остальные доставляется копия.

XMIT_ROUNDROBIN - выбор хука many производится последовательным перебором всех хуков manyX. Таким образом, в этом случае делается лишь одна опрерация перенаправления.XMIT_ROUNDROBIN является поведением по умолчанию.

Пакеты, приходящие на любой из хуков manyX, в обоих случаях перенаправляются в хук one.


alt
Пакеты приходящие на любой из хуков узла ng_hub перенаправляются в один из хуков, в остальные доставляется копия.

Оценка производителности графов Netgraph.

Оценка производителности графов Netgraph.

Длина графа при движении от em0:lower к em0:upper составляет 3 узла: tee - one2many - netflow
При этом делается 1 операция коприования и 2 перенаправления данных.
При движении в обратном направлении длина графа и количество операций коприования и перенаправления не изменяется.

Код к схеме 1:
 
ngctl -f- <<-SEQ

mkpeer em0: tee lower left
name em0:lower tee
connect tee: em0: right upper

mkpeer tee: one2many left2right many0
name tee:left2right one2many
connect tee: one2many: right2left many1

mkpeer one2many: netflow one iface0
name one2many:one netflow
mkpeer netflow: ksocket export inet/dgram/udp
name netflow:export ksocket
msg ksocket: connect inet/10.0.0.1:4444
SEQ





Оценка производителности графов Netgraph.
Длина графа при движении от em0:lower к em0:upper составляет 2 узла: tee - netflow
При этом делается 1 операция коприования и 1 перенаправления данных.
При движении в обратном направлении длина графа и количество операций коприования и перенаправления не изменяется.
Код к схеме 2:

ngctl -f- <<-SEQ
mkpeer em0: tee lower left
name em0:lower tee
connect tee: em0: right upper

mkpeer tee: netflow left2right iface0
name tee:left2right netflow
connect tee: netflow: right2left iface1

mkpeer netflow: ksocket export inet/dgram/udp
name netflow:export ksocket
msg ksocket: connect inet/10.0.0.1:4444
SEQ
Оценка производителности графов Netgraph.

Длина графа при движении от em0:lower к em0:upper составляет 3 узла: split0 - netflow - split1
При этом делается 3 операции перенаправления данных. При движении в обратном направлении длина графа и количество операций коприования и перенаправления не изменяется.
Код к схеме 3:


ngctl -f- <<-SEQ

 mkpeer em0: split lower mixed
 name em0:lower splitlow

 mkpeer split0: netflow out iface0
 name split0:iface0 netflow
 connect netflow: split0: out1 in

 mkpeer netflow: split iface1 out
 name netflow:out split1
 connect split1: netflow: in out0
 
 connect split1: em0: mixed upper

 mkpeer netflow: ksocket export inet/dgram/udp
 name netflow:export ksocket
 msg ksocket: connect inet/10.0.0.1:4444
SEQ 


alt
Длина графа при движении от em0:lower к em0:upper составляет 2 узла: hub - netflow
При этом делается 1 операция коприования и 1 перенаправления данных.
При движении в обратном направлении длина графа и количество операций коприования и перенаправления не изменяется.

Код к схеме 4:

ngctl -f- <<-SEQ
 mkpeer em0: hub lower hook0
 name em0:lower hub
 connect hub: em0: hook1 upper

 mkpeer hub: netflow hook2 iface0
 name hub:hook2 netflow

 mkpeer netflow: ksocket export inet/dgram/udp
 name netflow:export ksocket
 msg ksocket: connect inet/10.0.0.1:4444
SEQ



Оценка производителности графов Netgraph.
Длина графа при движении от em0:lower к em0:upper составляет 2 узла: netflow0 - netflow1
При этом делается 2 операции перенаправления данных.
При движении в обратном направлении длина графа и количество операций коприования и перенаправления не изменяется.

Код к схеме 5:
 

ngctl -f- <<-SEQ
mkpeer em0: netflow lower iface0
name em0:lower netflow0

mkpeer netflow0: netflow out0 out0
name netflow0:out0 netflow1

connect netflow1: em0: iface0 upper
mkpeer netflow0: one2many export many1
name netflow0:export one2many
connect netflow1: one2many: export many0

mkpeer one2many: ksocket one inet/dgram/udp
name one2many:one ksocket
msg ksocket: connect inet/10.0.0.1:4444
SEQ


alt

Длина графа при движении от em0:lower к em0:upper составляет 3 узла: netflow - hub - netflow
При этом делается 3 операции перенаправления данных.
При движении в обратном направлении длина графа и количество операций коприования и перенаправления не изменяется.

Код к схеме 6:
 

ngctl -f- <<-SEQ
mkpeer em0: netflow lower iface0
name em0:lower netflow

mkpeer netflow: hub out0 hook0
name netflow:out0 hub

connect hub: netflow: hook1 out1
connect netflow: em0: iface1 upper

mkpeer netflow: ksocket export inet/dgram/udp
name netflow:export ksocket
msg ksocket: connect inet/10.0.0.1:4444
SEQ


alt

Длина графа при движении от em0:lower к em0:upper составляет 2 узла: netflow - netflow
При этом делается 2 операции перенаправления данных.
При движении в обратном направлении длина графа и количество операций коприования и перенаправления не изменяется.

Код к схеме 7:
 

ngctl -f- <<-SEQ
mkpeer em0: netflow lower iface0
name em0:lower netflow
connect netflow: em0: iface1 upper

connect netflow: netflow: out0 out1

mkpeer netflow: ksocket export inet/dgram/udp
name netflow:export ksocket
msg ksocket: connect inet/10.0.0.1:4444
SEQ


Приведенный метод анализа позволяет простыми средствами оценить ресурсоемкость графа Netgraph.
Исходя из изложенных соображений

Схемы 2 и 4 равнозначны.
Схемы 3 и 6 равнозначны.
Схемы 5 и 7 равнозначны.

Схема 1 должна быть наименее произодительной.
Схемы 5 и 7 должны быть наиболее произодительными.





Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
 
Автор: hellevil | 13-03-2009, 18:43 | Просмотров: 21 599
 
pix
  Новости по теме    
pix pix pix
  • Multicast во FreeBSD без igmpproxy replacement on netgraph
  • Копирование данных с помощью rsync + ssh
  • ROOT ON ZFS FREEBSD 9 live cd on dvd
  • Репликация MySQL
  • Перекомпиляция/пересобирание ядра/kernel FreeBSD
  •  
     
     
    pix
     
    pix
    search
    navi
    poll
    calendar
    «    Октябрь 2020    »
    ПнВтСрЧтПтСбВс
     1234
    567891011
    12131415161718
    19202122232425
    262728293031 
    main4
    pix pix pix

    2007 © www.DesktopBSD.ru
    Все права сохранены