Перейти до

Пора менять железку?


Рекомендованные сообщения

  • Відповіді 107
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Поллинг убрать, ибо он есть жалкой програмной реализацией того, что em и igb умеют аппаратно.

+1   А также забыть как страшный про pfnat и пачки по два пайпа на юзера.

Мне кажется, Вам советуют люди, которые уже прошли Ваш путь и знают, о чём говорят.     У меня на 1-м брасе 2000 туннелей, при 10 тарифных планах всего около 40 правил ipfw с NAT'ом и пайпами вклю

Posted Images

  Цитата
Поллинг убрать, ибо он есть жалкой програмной реализацией того, что em и igb умеют аппаратно.

+1

 

А также забыть как страшный про pfnat и пачки по два пайпа на юзера.

Ссылка на сообщение
Поделиться на других сайтах

Блин, чем вам так pf не люб и pipe?

По-моему должно колбасить всё на такой машине, неужели так критично при 150 юзерах?

Ссылка на сообщение
Поделиться на других сайтах
  В 28.10.2010 в 18:36, Kucher2 сказав:

Блин, чем вам так pf не люб и pipe?

 

Мне кажется, Вам советуют люди, которые уже прошли Ваш путь и знают, о чём говорят.

 

  В 28.10.2010 в 18:36, Kucher2 сказав:

По-моему должно колбасить всё на такой машине, неужели так критично при 150 юзерах?

 

У меня на 1-м брасе 2000 туннелей, при 10 тарифных планах всего около 40 правил ipfw с NAT'ом и пайпами включительно (таблицы).

 

У Вас на 150 пользователей только пайпов будет 300 штук. Пока у Вас 10 мегабит траффика, допускаю, что падение производительности малозаметно. Но если бы я на своих 300 мегабитах нета наколбасил 350 правил, полагаю, потребовалось бы либо вдвое более мощный процессор, либо дополнительный BRAS.

 

pf не паралелится на несколько процессоров, посему в один прекрасный вечер умрёт на одном из ядер, при абсолютно простаивающих других.

Ссылка на сообщение
Поделиться на других сайтах
  Цитата
pf не паралелится на несколько процессоров, посему в один прекрасный вечер умрёт на одном из ядер, при абсолютно простаивающих других.

:lol: Чёрт. Почему мне никто этого не сказал, когда я переходил с чистого ipfw на связку ipfw+pf. :lol:

Ссылка на сообщение
Поделиться на других сайтах

Пайпы мы любим, только по маске :)

 

В онконнект-ондисконнект только переписать чуть логику из рассчета 1 скорость - 2 пайпа на весь тариф а не по 2 на каждого юзера. Разворачивание табличек автоматом даст вам прирост производительности около 15%.

pfnat ущербно работает на смп системах а прохождение пакетов по гибридной схеме ipfw-pf-ipfw ощутимо медленнее. Пробуйте ipfw nat - на дохлом тазике люди лупят в среднем по 450 мбит. Благо строиться минут за 10 даже в пяном состоянии.

 

http://habrahabr.ru/blogs/bsdelniki/102739/

 

Есть подозрение что переходили вы на связку ipfw+pfnat либо с ipfw+natd ("быстрое" переключение контекстов - ГЫ) либо во времена 7.х - когда c ipfwnat все было очень запущено.

Все изменилось. Теперь libalias довольно адекватен.

Ссылка на сообщение
Поделиться на других сайтах
  В 28.10.2010 в 15:48, Kucher2 сказав:
  Цитата
Поллинг надо выкинуть из конфига ядра вообще.

Т.е. его обязательно надо выкинуть?

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

 

  В 28.10.2010 в 15:48, Kucher2 сказав:
  Цитата
Откажитесь от pf в пользу ipfw nat.

Не хотелось бы, он мне нравится, к тому же у меня на нём завязано кое-что.

вам шашечки или ехать?

если ехать, то отказывайтесь.

у pf есть одна неприятная особенность: код содержит глобальную блокировку и не распараллеливается на несколько ядер, что весьма негативно сказывается на проходящем траффике.

 

  В 28.10.2010 в 15:48, Kucher2 сказав:
  Цитата
Покажите systat -vm 1

Покажите sysctl dev.igb

судя по всему все в норме.

 

По файрволу - переходите на связку ipfw table + pipe по маске. В свое время это дало нам двукратное снижение нагрузки на проц.

 

Если возвращаться к начальному вопросу - виноват скорее всего был поллинг.

Відредаговано adeep
Ссылка на сообщение
Поделиться на других сайтах
  В 28.10.2010 в 15:03, andryas сказав:

/boot/loader.conf

 

hw.em.rx_process_limit="-1"

hw.em.rx_abs_int_delay="33"

hw.em.rxd="4096"

hw.em.txd="4096"

hw.em.rx_int_delay=800

hw.em.tx_int_delay=800

 

И живём без прерываний :)

Увы. Сейчас нагрузка 10-20Мбит где-то, а interrupt показывает 20%.

 

Огромное Вам всем спасибо за отзывчивость!

Буду разбираться в логике и переводить сервер на ipfw nat.

Ссылка на сообщение
Поделиться на других сайтах
  В 28.10.2010 в 21:48, adeep сказав:
  В 28.10.2010 в 15:48, Kucher2 сказав:
  Цитата
Откажитесь от pf в пользу ipfw nat.

Не хотелось бы, он мне нравится, к тому же у меня на нём завязано кое-что.

вам шашечки или ехать?

если ехать, то отказывайтесь.

у pf есть одна неприятная особенность: код содержит глобальную блокировку и не распараллеливается на несколько ядер, что весьма негативно сказывается на проходящем траффике.

Слава, а как быть в случае, когда надо натить в пул реальных ип? у пф это сделано очень красиво :)

Ссылка на сообщение
Поделиться на других сайтах
  В 29.10.2010 в 06:09, 911 сказав:

Слава, а как быть в случае, когда надо натить в пул реальных ип? у пф это сделано очень красиво :)

Пишите Theo слезные письма, что хотите гонять pf на smp системах. Или вешаться.

Ссылка на сообщение
Поделиться на других сайтах

Кстати, у меня пара машин в сети имеет реальные IP. В pf пробросить ip несложно, хотя с VPN внуть сети на нём я так ничего сделать и не смог.

В ipfw nat отдать юзеру реал ip получится норм? IP прописаны алиасами на внешнем ИФ сервера.

И таблицы эти для меня тёмный лес, если честно. Чувствую сегодня будет тяжёлая ночь. :)

Ссылка на сообщение
Поделиться на других сайтах
  Цитата
В ipfw nat отдать юзеру реал ip получится норм? IP прописаны алиасами на внешнем ИФ сервера.

да без проблем. Втыкаете пул реальных адресов в табличку и натите to not tablichka

Ссылка на сообщение
Поделиться на других сайтах

Простите за назойливость, может подкинете примерчик по типу: есть машина в сети 10.0.1.2.

Для неё надо выдать реал IP 1.2.3.4.

Как правильно написать для неё правила в скрипте ipfw, использую table?

Тяжеловато мне пока с синтаксисом. :)

Или бросьте ссылкой, чтоб было где почитать и вникнуть. На русском. :)

 

® Вы только не волнуйтесь, но ОНО к тому же ещё и глухое! :)

 

P.S. Я чего-то не понял, или перенаправление белого IP на клиента по прежнему делается через natd и требует включения в ядро

options IPDIVERT

?

И возможно ли шейпить такого юзера с белым IP?

Ссылка на сообщение
Поделиться на других сайтах

NatIP="aa.bb.cc.dd"

int0="em0"

fwcmd="/sbin/ipfw -q"

 

${fwcmd} nat 1 config ip $NatIP

${fwcmd} add 500 nat 1 ip from any to $NatIP in recv $int0

${fwcmd} add 501 nat 1 ip from 10.0.0.0/8 to any out xmit $int0

 

${fwcmd} table 1 add aa.bb.cc.ff/xx

${fwcmd} table 1 add 10.0.0.0/8

 

${fwcmd} add 600 pass all from any to table\(1\) in via $int0

${fwcmd} add 601 pass all from table\(1\) to any out via $int0

 

----------

10.0.0.0/8 - серая подсеть, всё остальное не натится.

aa.bb.cc.dd - IP для NAT'а

aa.bb.cc.ff/xx - одна из Ваших бел. подсетей

 

Дальше заполняете таблицы IP'шками клиентов (неважно белыми или серыми) и шейпите пайпами по ним с маской.

---------

 

${fwcmd} table 6 flush

${fwcmd} add 60006 pipe 60006 all from any to table\(6\) out

${fwcmd} add 60007 pipe 60007 all from table\(6\) to any in

${fwcmd} pipe 60006 config mask dst-ip 0xffffffff bw 128Kbit/s

${fwcmd} pipe 60007 config mask src-ip 0xffffffff bw 128Kbit/s

 

${fwcmd} table 6 add 1.2.3.4

${fwcmd} table 6 add 1.2.3.5

${fwcmd} table 6 add 10.20.30.40

 

и т.д., попутно изучая маны

Ссылка на сообщение
Поделиться на других сайтах

Ага, на счёт проброса IP надыбал инфу про ng_nat: http://www.opennet.ru/tips/info/1943.shtml

и ещё тут.

а так же: http://www.opennet.ru/tips/info/1782.shtml

 

Попробовал, получилось. Вкомпилил только ng_nat в ядро, чтоб не грузить модулем.

 

Пока просто отказался от pf, вернул ipfw и запустил чтоб хоть как-то работало. До таблиц пока не дошёл.

 

Всем искреннее спасибо, кто помог советом: у меня "плюсики" кончились на эти сутки. ^_^

Ссылка на сообщение
Поделиться на других сайтах

Не делал пока никаких таблиц, юзерам отпустил канал.

Народа щас правда человек 80 (а бывает больше сотни), трафик на закачку около 50Мбит - 4500pps, отдача 15Мбит 3000 pps. Картинка такая вот стала.

Пинг стабильно 1мс. Даже когда я tafshow на ИФ запускаю и нагрузка на проц поднимается, потерь пакетов практически нет. ^_^

post-3670-098938600 1288441739_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах
  В 30.10.2010 в 13:51, adeep сказав:

посмотрите по systat -vm или по vmstat -i кто у вас все таки кушает прерывания.

Похоже сетевые службы.

 

vmstat -i

interrupt                          total       rate
irq1: atkbd0                           6          0
irq19: atapci1                    188466          4
cpu0: timer                     90956035       1965
irq256: igb0                   134177020       2900
irq257: igb0                   100825356       2179
irq258: igb0                           2          0
irq259: igb1                   110771935       2394
irq260: igb1                   134295705       2902
irq261: igb1                           2          0
cpu1: timer                     90955905       1965
Total                          662170432      14312

 

Думаю таблицы ещё подмогнут, но в общем-то при хорошей загрузке... может такие показатели и приемлемы для такого железа как у меня.

Во всяком случае хочется верить, что стало лучше.

Сейчас народу прибавилось, 95 онлайн. Тут проскакивала мысль и она видимо верная - о кол-ве сессий.

Чем глянуть кол-во сессий? Мне кажется это они. ^_^

post-3670-063110500 1288448376_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах

Хорошо, попробую попозже. Не смог систематизировать всё, пришлось по-быстрому лепить из того что понял.

Метод проброса IP через ngctl мне понравился, хотелось бы оставить, он легко интегрируется в OnConnect для СТГ.

Однозначно могу сказать одно: с PF действительно работало всё медленнее, чем даже с natd.

У меня сейчас и страницы ощутимо быстрее открываются.

Ссылка на сообщение
Поделиться на других сайтах

Много прерываний кушают igb. При 100мбитах на systat у igb должно быть прерываний меньше тысячи (на два irq по 800-900 прерываний в секунду).

Покажите sysctl dev.igb

Пример настроек в /boot/loader.conf:

hw.igb.rxd=4096
hw.igb.txd=2048
hw.igb.enable_aim=0
hw.igb.low_latency=2000
hw.igb.ave_latency=4000
hw.igb.bulk_latency=8000
hw.igb.rx_process_limit=1000
hw.igb.fc_setting=0

Будьте внимательны на первых двух параметрах - некоторые сетевушки на значениях в 4096 вешаются.

Ссылка на сообщение
Поделиться на других сайтах

sysctl dev.igb

dev.igb.0.%desc: Intel(R) PRO/1000 Network Connection version - 1.7.3
dev.igb.0.%driver: igb
dev.igb.0.%location: slot=0 function=0
dev.igb.0.%pnpinfo: vendor=0x8086 device=0x10c9 subvendor=0x8086 subdevice=0xa03c class=0x020000
dev.igb.0.%parent: pci1
dev.igb.0.debug: -1
dev.igb.0.stats: -1
dev.igb.0.flow_control: 3
dev.igb.0.enable_aim: 1
dev.igb.0.low_latency: 128
dev.igb.0.ave_latency: 450
dev.igb.0.bulk_latency: 1200
dev.igb.0.rx_processing_limit: 100
dev.igb.1.%desc: Intel(R) PRO/1000 Network Connection version - 1.7.3
dev.igb.1.%driver: igb
dev.igb.1.%location: slot=0 function=1
dev.igb.1.%pnpinfo: vendor=0x8086 device=0x10c9 subvendor=0x8086 subdevice=0xa03c class=0x020000
dev.igb.1.%parent: pci1
dev.igb.1.debug: -1
dev.igb.1.stats: -1
dev.igb.1.flow_control: 3
dev.igb.1.enable_aim: 1
dev.igb.1.low_latency: 128
dev.igb.1.ave_latency: 450
dev.igb.1.bulk_latency: 1200
dev.igb.1.rx_processing_limit: 100

 

/boot/loader.conf подправлю позже: это ребут сервера нужен, меня съедят.

 

Спасибо за помошь. ^_^

Ссылка на сообщение
Поделиться на других сайтах

Запустил таки ipfw_nat. С табличками вроде тоже понятно. Действительно удобно.

 

Но самое главное - застрял я на пробросе белых IP. Кончились идеи, уже по всякому пробовал, не пойму почему не работает.

Принципиально не хочу мутить ng_nat или другой, должен же этот работать, если его придумали.

 

У меня реальники прописаны на внешнем ИФ.

Делал и not table и redirect_addr на адрес внутрь локалки и из этой темы примеры брал и крутил их по всякому - нифига. Получается либо полный затык, либо адрес просто не пробрасывется, буд-то и нет того redirect_addr. ^_^

 

Покажите пожалуйста рабочий конфиг или конкретный пример для моего случая - не могу найти развёрнутого объяснения, хотя надыбал несколько статей по настройке конкретно ipfw_nat.

Конечно по сравнению с natd эта тема пока бедновата.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.


×
×
  • Створити нове...