баллансировка нагрузки на интерфейсах

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
casp
проходил мимо
Сообщения: 4
Зарегистрирован: 2010-03-05 12:27:56

баллансировка нагрузки на интерфейсах

Непрочитанное сообщение casp » 2010-03-05 13:40:47

Здравствуйте, столкнулся с проблемой - есть сервер (отдает тяжелый контент, скорость отдачи упирается в гигабит) в нем две гигабитные сетевухи, воткнуты в один свитч, ip из одной сети, шлюз один.
Запросы приходят на все интерфейсы, но ответы уходят только с одного, соответственно упираемся в скорость порта - тоесть гигабит.
ось 8.0-RELEASE, статику отдает нжиникс.


Всячески пытался ломать голову на предмет ната, форварда и редиректа средствами pf, но логически не могу составить правильных правил.


конфиг sysctl.conf

Код: Выделить всё

kern.ipc.nmbclusters=65536
net.inet.tcp.syncookies=1
kern.ipc.somaxconn=4096
kern.ipc.maxsockets=204800
kern.maxfiles=102400
kern.maxfilesperproc=120000
net.inet.tcp.recvspace=8192
net.inet.tcp.sendspace=16384

net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65535

net.inet.ip.portrange.randomized=0
net.inet.tcp.nolocaltimewait=1


#net.inet.tcp.blackhole=1
#net.inet.udp.blackhole=1

net.inet.tcp.maxtcptw=40960
net.inet.tcp.msl=1500
net.inet.tcp.fast_finwait2_recycle=1
net.inet.tcp.finwait2_timeout=5000
net.inet.tcp.always_keepalive=0

net.inet.tcp.keepidle=15000

net.link.ether.inet.log_arp_wrong_iface=0
net.inet.ip.random_id=1
kern.polling.enable=1
loader.conf

Код: Выделить всё

verbose_loading="YES"
accf_data_load="YES"
accf_http_load="YES"
kern.ipc.nsfbufs=10240
net.inet.tcp.syncache.bucketlimit=100
net.inet.tcp.syncache.hashsize=2048
net.inet.tcp.tcbhashsize=4096
vm.kmem_size=2G
vm.kmem_size_max=2G
kern.ipc.nmbclusters=65536

Код: Выделить всё

options VM_KMEM_SIZE=2073741824
options VM_KMEM_SIZE_MAX=2073741824
#options KVA_PAGES=512

maxusers 312
options         DEVICE_POLLING

options         ACCEPT_FILTER_DATA
options         ACCEPT_FILTER_DNS
options         ACCEPT_FILTER_HTTP


device pf
device pflog

options         ALTQ

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: баллансировка нагрузки на интерфейсах

Непрочитанное сообщение terminus » 2010-03-05 15:22:56

Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Гость
проходил мимо

Re: баллансировка нагрузки на интерфейсах

Непрочитанное сообщение Гость » 2010-03-05 18:00:58

к сожалению не помогло... траффик так и продолжает уходить через один интерфейс, хотя приходит правильно - на все

Код: Выделить всё

systat -if
... ... ... 
      Interface           Traffic               Peak                Total
          lagg0  in      0.175 KB/s          0.244 KB/s           64.137 MB
                 out     0.000 KB/s          0.000 KB/s            0.451 KB
            lo0  in      0.000 KB/s          0.000 KB/s           12.625 KB
                 out     0.000 KB/s          0.000 KB/s           12.625 KB
            em1  in      0.058 KB/s          0.081 KB/s           21.384 MB
                 out     0.000 KB/s          0.000 KB/s            0.164 KB
            em0  in      0.058 KB/s          0.081 KB/s           21.402 MB
                 out     0.000 KB/s          0.000 KB/s            0.205 KB
           igb1  in      0.058 KB/s          0.081 KB/s           21.385 MB
                 out     0.000 KB/s          0.000 KB/s            0.123 KB
           igb0  in      1.312 MB/s          1.312 MB/s          106.924 MB
                 out     9.379 MB/s          9.931 MB/s            1.701 GB

Код: Выделить всё

ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=11b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4>
        ether 00:26:55:7b:5a:c3
        inet 192.91.186.232 netmask 0xffffff00 broadcast 192.91.186.255
        media: Ethernet autoselect
        status: active
        laggproto loadbalance
        laggport: em1 flags=4<ACTIVE>
        laggport: em0 flags=4<ACTIVE>
        laggport: igb1 flags=4<ACTIVE>
laggproto перепробовал все доступные - итог один - траффик приходит на все интерфейсы, уходист с одного

Гость
проходил мимо

Re: баллансировка нагрузки на интерфейсах

Непрочитанное сообщение Гость » 2010-03-05 18:03:32

к сожалению не помогло... траффик так и продолжает уходить через один интерфейс, хотя приходит правильно - на все

Код: Выделить всё

systat -if
... ... ... 
      Interface           Traffic               Peak                Total
          lagg0  in      0.175 KB/s          0.244 KB/s           64.137 MB
                 out     0.000 KB/s          0.000 KB/s            0.451 KB
            lo0  in      0.000 KB/s          0.000 KB/s           12.625 KB
                 out     0.000 KB/s          0.000 KB/s           12.625 KB
            em1  in      0.058 KB/s          0.081 KB/s           21.384 MB
                 out     0.000 KB/s          0.000 KB/s            0.164 KB
            em0  in      0.058 KB/s          0.081 KB/s           21.402 MB
                 out     0.000 KB/s          0.000 KB/s            0.205 KB
           igb1  in      0.058 KB/s          0.081 KB/s           21.385 MB
                 out     0.000 KB/s          0.000 KB/s            0.123 KB
           igb0  in      1.312 MB/s          1.312 MB/s          106.924 MB
                 out     9.379 MB/s          9.931 MB/s            1.701 GB

Код: Выделить всё

ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=11b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4>
        ether 00:26:55:7b:5a:c3
        inet 192.91.186.232 netmask 0xffffff00 broadcast 192.91.186.255
        media: Ethernet autoselect
        status: active
        laggproto loadbalance
        laggport: em1 flags=4<ACTIVE>
        laggport: em0 flags=4<ACTIVE>
        laggport: igb1 flags=4<ACTIVE>
laggproto перепробовал все доступные - итог один - траффик приходит на все интерфейсы, уходист с одного

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: баллансировка нагрузки на интерфейсах

Непрочитанное сообщение terminus » 2010-03-05 18:09:34

в несколько сессий от разных источников проверьте. ЕМНИП LAGG хеширует потоки по сессиям. Суммарный поток будет распределен через все адартеры в группе, тогда как поток на одного клиента только через одну сетевуху.

--

только если захотите lacp то он на свитче должен поддерживаться. Если саитч умный/гигабитный то должен - надо только настроить.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

casp
проходил мимо
Сообщения: 4
Зарегистрирован: 2010-03-05 12:27:56

Re: баллансировка нагрузки на интерфейсах

Непрочитанное сообщение casp » 2010-03-05 22:26:19

Все правильно, просто был глюк с тем что если присутствует интефейс вне lagg то траффик выливался через него. Второй глюк найден с тем что раундробин баллансировка привела к перезагрузке системы.
пока остановился на loadbalance.
посмотрим как он будет вести себя под нагрузкой

большое спасибо!

вот итоговый скрипт, может кому-то понадобится

Код: Выделить всё

#!/bin/sh

#удаляем все ипы со всем интерфейсоф (чтобы наверняка)
ifconfig em0 delete
ifconfig em1 delete
ifconfig igb0 delete
ifconfig igb1 delete

#создаем lagg 
ifconfig lagg0 create
ifconfig lagg0 up
ifconfig lagg0 laggproto loadbalance
ifconfig lagg0 XXX.XXX.XXX.21

#добавляем в lagg все порты сервера
ifconfig lagg0 laggport igb0
ifconfig lagg0 laggport igb1
ifconfig lagg0 laggport em0
ifconfig lagg0 laggport em1

#принудительно поднимаем интерфейсы 
ifconfig igb0 up
ifconfig igb1 up
ifconfig em0 up
ifconfig em1 up

#добавляем маршрут
route add default XXX.XXX.XXX.1

Аватара пользователя
lolwut
мл. сержант
Сообщения: 123
Зарегистрирован: 2010-01-26 4:39:23

Re: баллансировка нагрузки на интерфейсах

Непрочитанное сообщение lolwut » 2010-03-09 19:39:42

8.0-RELEASE и поллинг на em? это такой изощренный изврат или я что-то не понял?