The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"bridge+ebtables скорость работы"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"bridge+ebtables скорость работы"  +/
Сообщение от dct email(??) on 23-Сен-09, 12:58 
Привет всем!

В общем такая ситуация:

Имеем машинку на linux

uname -a
(Linux br01 2.6.30-gentoo-r5 #1 SMP Tue Sep 22 13:29:24 YEKST 2009 i686 Intel(R) Xeon(TM) CPU 3.20GHz GenuineIntel GNU/Linux)

На машинку на 1 гаигабитный интерфейс (tg3) выходят 591 vlan. Оптимизация интерфейса выполнена вроде все возможное, смотрел сюда и еще по всяким ссылкам: (http://timetobleed.com/useful-kernel-and-driver-performance-.../), poll работает.

На половине vlan, 270 штук, висят правила ebtables. На каждом vlan, в срднем, 8 правил, 4 по arp модулю, 4 по ip модулю. Ничего особенного, дроп или аццепт маков или ipv4 адресов.

Также, на каждом из vlan висят htb sfq шейперы, скорости от 128кбит до 8Мбит.


Имеем следующую ситуацию. При трафике около 5-8Мбайт/c (до 64 мбит/c) происходит отсечка пакетов на границе примерно 10 тыс. пакетов/c. Потери полезного трафика 5-25%. При этом видим скачки занятости процессора до 100%.

> mpstat -P ALL 1

09:00:11     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
09:00:12     all    0.74    0.00    0.49    0.00    0.00   25.25    0.00    0.00   73.53
09:00:12       0    0.99    0.00    0.00    0.00    0.00    0.99    0.00    0.00   98.02
09:00:12       1    0.00    0.00    0.96    0.00    0.00    0.00    0.00    0.00   99.04
09:00:12       2    0.00    0.00    0.00    0.00    0.00  100.00    0.00    0.00    0.00
09:00:12       3    1.94    0.00    0.97    0.00    0.00    1.94    0.00    0.00   95.15

09:00:12     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
09:00:13     all    0.49    0.00    0.98    0.00    0.00   25.49    0.00    0.00   73.04
09:00:13       0    0.00    0.00    0.00    0.00    0.00    0.98    0.00    0.00   99.02
09:00:13       1    0.00    0.00    0.98    0.00    0.00   81.37    0.00    0.00   17.65
09:00:13       2    0.97    0.00    1.94    0.00    0.00   18.45    0.00    0.00   78.64
09:00:13       3    0.99    0.00    0.99    0.00    0.00    0.99    0.00    0.00   97.03

09:00:13     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
09:00:14     all    0.49    0.00    0.25    0.00    0.00   25.00    0.00    0.00   74.26
09:00:14       0    0.00    0.00    0.00    0.00    0.00    1.96    0.00    0.00   98.04
09:00:14       1    0.00    0.00    0.00    0.00    0.00   79.00    0.00    0.00   21.00
09:00:14       2    0.00    0.00    0.98    0.00    0.00   20.59    0.00    0.00   78.43
09:00:14       3    1.92    0.00    0.00    0.00    0.00    0.00    0.00    0.00   98.08

09:00:14     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
09:00:15     all    0.50    0.00    0.75    0.00    0.00   21.80    0.00    0.00   76.94
09:00:15       0    0.00    0.00    0.00    0.00    0.00    2.94    0.00    0.00   97.06
09:00:15       1    0.00    0.00    0.00    0.00    0.00   85.26    0.00    0.00   14.74
09:00:15       2    0.00    0.00    1.02    0.00    0.00    3.06    0.00    0.00   95.92
09:00:15       3    1.92    0.00    1.92    0.00    0.00    0.00    0.00    0.00   96.15

09:00:15     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
09:00:16     all    0.25    0.00    0.49    0.00    0.00   24.63    0.00    0.00   74.63
09:00:16       0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
09:00:16       1    0.00    0.00    0.00    0.00    0.00   94.34    0.00    0.00    5.66
09:00:16       2    0.98    0.00    0.98    0.00    0.00    0.00    0.00    0.00   98.04
09:00:16       3    0.00    0.00    1.03    0.00    0.00    0.00    0.00    0.00   98.97

09:00:16     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
09:00:17     all    0.74    0.00    0.25    0.00    0.00   24.88    0.00    0.00   74.14
09:00:17       0    0.96    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.04
09:00:17       1    0.00    0.00    0.00    0.00    0.00  100.00    0.00    0.00    0.00
09:00:17       2    1.01    0.00    0.00    0.00    0.00    1.01    0.00    0.00   97.98
09:00:17       3    0.97    0.00    0.97    0.00    0.00    0.00    0.00    0.00   98.06

Если опустить ebtables, количество пакетов возрастает до 20 тыс. пак/c, но это не весь полезный трафик, часть пакетов, примерно 6-8 тыс. должна была отсекаться iptables.

oprofile подтверждает что загрузку дают именно ebtables


CPU: P4 / Xeon with 2 hyper-threads, speed 3200.17 MHz (estimated)
Counted GLOBAL_POWER_EVENTS events (time during which processor is not stopped) with a unit mask of 0x01 (mandatory) count 100000
samples  %        app name                 symbol name
533027   76.0937  vmlinux                  ebt_do_table
10088     1.4401  sch_htb                  (no symbols)
7200      1.0279  vmlinux                  mwait_idle
6743      0.9626  vmlinux                  tg3_poll
6657      0.9503  ipcad                    flow_update
4818      0.6878  vmlinux                  tg3_read32
4527      0.6463  vmlinux                  dev_queue_xmit
3181      0.4541  vmlinux                  rb_get_reader_page
3133      0.4473  vmlinux                  tg3_start_xmit_dma_bug
3042      0.4343  sch_sfq                  (no symbols)
3032      0.4328  vmlinux                  irq_entries_start
3014      0.4303  vmlinux                  mix_pool_bytes_extract
2854      0.4074  vmlinux                  nf_iterate
2768      0.3952  vmlinux                  get_next_timer_interrupt
2718      0.3880  vmlinux                  __qdisc_run
2397      0.3422  vmlinux                  getnstimeofday
2138      0.3052  vmlinux                  kmem_cache_alloc
1988      0.2838  vmlinux                  read_tsc
1979      0.2825  vmlinux                  tg_shares_up
1955      0.2791  vmlinux                  ring_buffer_consume
1819      0.2597  oprofiled                (no symbols)
1611      0.2300  ip_tables                (no symbols)


Вот, в общем такой расклад. Кто ковырялся с высоконагруженными бриджами и ebtables? Может есть еще куда порыть, или это предел..?

Методы оптимизации примерно понятны... можно конечно и всю схему переломать и перекроить, просто рассчитывалось выжать из схемы несколько поболее чем 10 тыс ппс..

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "bridge+ebtables скорость работы"  +/
Сообщение от daevy on 24-Сен-09, 14:07 
сетевки поставить 2 и агрегировать их в одну, сетевки желательно какие нить мажорные, с собственными процами
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру