Перейти к содержимому
Калькуляторы

Вопрос к гуру по FreeBSD (polling, dummynet)

Да не при чем тут polling - чего вы его мучаете... Достаточно убрать dummynet и все просто летать будет и затыки все исчезнут. У меня так и было.

Почему нет желания на семерку обновиться? Уж по любому от ULE хуже не станет...

При ~2000 pipe имею такую картину на 6.3 , 100 пользователей, суммарный траффик Current In: 549.3 kB/s (4.4%)

Current Out: 83.4 kB/s

 

PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND

10 root 1 171 52 0K 8K RUN 29.5H 31.88% idle

234 root 1 107 0 22208K 21616K RUN 22.3H 29.30% natd

11 root 1 -44 -163 0K 8K WAIT 30.6H 25.88% swi1: net

39 root 1 -68 0 0K 8K - 26.7H 0.15% dummynet

21 root 1 -68 -187 0K 8K WAIT 52:35 0.05% irq17: mykc0

32 root 1 -68 -187 0K 8K WAIT 42:08 0.05% irq21: fxp0

521 root 4 20 -15 15520K 14292K kserel 286:56 0.00% ipcad

409 root 3 20 0 8620K 5580K kserel 73:45 0.00% mpd4

 

Т.е. dummynet вроде не при делах, а вот natd, это да...

Провел сейчас эксперименты - прошу прощения за то, что немного ввел в заблуждения про dummynet. :-) Его отключение сказывается только при включенном поллинге (т.к. иначе при включенном поллинге в заданные отрезки времени не успевает все обрабатываться), при отключенном - нет: загрузка по прерываниям остается той же, разве что несколько процентов самого dummynet'а из top'а изчезают...

Так что топикстартеру лично от меня рекомендации все те же: т.е. это шейпер и сетевушки em - отключать поллинг, оптимизировать файрволл (как справедливо отметил Maxa), отказаться от ipcad, перейти на семерку с ULE. :-)

 

2YuryD:

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

 

Вот лично у меня сейчас так:

gw# netstat -w 1 -i em0
            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
     32792     0   22799598      31514     0   22053184     0
     32847     0   22504705      31444     0   21866153     0
     32511     0   22900525      31163     0   22182217     0
     33033     0   22482412      31643     0   21784739     0

с вот такой загрузкой:

last pid:  8564;  load averages:  0.11,  0.15,  0.16                     up 27+06:33:47  18:52:35
96 processes:  4 running, 77 sleeping, 15 waiting
CPU states:  0.1% user,  0.0% nice, 11.8% system, 41.2% interrupt, 47.0% idle
Mem: 210M Active, 265M Inact, 275M Wired, 100K Cache, 110M Buf, 230M Free
Swap: 1024M Total, 1024M Free

  PID USERNAME    THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
   15 root          1 -44    -     0K     8K CPU1   1 466.5H 89.50% swi1: net
   12 root          1 171 ki31     0K     8K RUN    0 323.8H 48.00% idle: cpu0
   11 root          1 171 ki31     0K     8K RUN    1 362.4H 45.46% idle: cpu1
   23 root          1 -68    -     0K     8K -      1  35.7H  8.01% em0 taskq
   37 root          1 -68    -     0K     8K -      0  75.7H  6.01% dummynet
   24 root          1 -68    -     0K     8K -      0 969:59  0.83% em1 taskq
   13 root          1 -32    -     0K     8K WAIT   0 685:55  0.73% swi4: clock sio
1070 root          1  44    0 62012K 59408K select 1 260:44  0.00% bgpd

на такой машинке:

FreeBSD 7.0-RELEASE #2: Wed Mar 12 23:57:08 MSK 2008
    skylordssh@gw.vt.net.ru:/usr/obj/usr/src/sys/skykernel
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Processor model unknown (3013.74-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x40f33  Stepping = 3
  Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFL
USH,MMX,FXSR,SSE,SSE2,HTT>
  Features2=0x2001<SSE3,CX16>
  AMD Features=0xea500800<SYSCALL,NX,MMX+,FFXSR,RDTSCP,LM,3DNow!+,3DNow!>
  AMD Features2=0x1f<LAHF,CMP,SVM,ExtAPIC,CR8>
  Cores per package: 2
real memory  = 1056899072 (1007 MB)
avail memory = 1024823296 (977 MB)

 

Функционально крутится все почти тоже самое, что у топикстартера: ng_netflow, pf (для nat'а), ipfw+dummynet, quagga (bgp+ospf), ну и мелочевка...

Оптимизациями в самом ближайшем будущем заниматься пока не планирую (кроме установки 7.1)... А там - посмотрим. Но, ИМХО, на данный момент вполне сносно...

Поделиться сообщением


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

а покажи плиз свои правила думминета ?!

машинка аналогична ,только интел и задачи теже, только нат через ng_nat, но нагрузка выше на машинку

Поделиться сообщением


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

Уберите все же поллинг из ядра, тем более с 2000, оптимизируйте файерволл...

Поллинг на сетевых интерфейсах в данный момент выключен.

 

Провел сейчас эксперименты - прошу прощения за то, что немного ввел в заблуждения про dummynet. :-) Его отключение сказывается только при включенном поллинге (т.к. иначе при включенном поллинге в заданные отрезки времени не успевает все обрабатываться), при отключенном - нет: загрузка по прерываниям остается той же, разве что несколько процентов самого dummynet'а из top'а изчезают...

Так что топикстартеру лично от меня рекомендации все те же: т.е. это шейпер и сетевушки em - отключать поллинг, оптимизировать файрволл (как справедливо отметил Maxa), отказаться от ipcad, перейти на семерку с ULE. :-)

Поллинг выключен. От ipcad отказаться можно, хотя проблема появилась именно после включения dummynet на сервере (раньше не было такой нагрузки).

 

В общем, следующим шагом планирую обновиться до последних сырцов 6.3, и пересобрать world. Там вроде что-то новенькое в dummynet добавили недавно.

 

Кто-нибудь мне скажет, что такое swi1: net? Отчего он грузит процессор?

Поделиться сообщением


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

swi1: net - это похоже вся сетевая подсистема, в том числе нетграф и ipfw, у меня 6.2 , mpd 4.3

last pid: 43055; load averages: 0.81, 0.79, 0.78 up 49+04:41:06 20:57:02

83 processes: 5 running, 64 sleeping, 14 waiting

CPU states: 0.5% user, 0.0% nice, 1.8% system, 3.4% interrupt, 94.3% idle

Mem: 45M Active, 127M Inact, 332M Wired, 199M Buf, 1500M Free

Swap: 4096M Total, 4096M Free

 

PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND

12 root 1 171 52 0K 8K RUN 1 1155.8 95.90% idle: cpu1

11 root 1 171 52 0K 8K CPU2 2 1153.2 94.87% idle: cpu2

10 root 1 171 52 0K 8K CPU3 3 1159.7 94.43% idle: cpu3

13 root 1 171 52 0K 8K CPU0 0 795.3H 82.47% idle: cpu0

16 root 1 -44 -163 0K 8K WAIT 0 362.1H 13.67% swi1: net

71390 root 7 20 0 39120K 23884K kserel 2 50.3H 0.00% mpd4

14 root 1 -32 -151 0K 8K WAIT 2 30.6H 0.00% swi4: clock

28 root 1 -68 0 0K 8K - 2 380:42 0.00% dummynet

17 root 1 96 0 0K 8K - 3 177:55 0.00% yarrow

35 root 1 20 0 0K 8K syncer 0 80:10 0.00% syncer

561 root 1 96 0 1404K 1072K select 1 53:22 0.00% syslogd

33 root 1 -16 0 0K 8K psleep 0 48:05 0.00% bufdaemon

34 root 1 -4 0 0K 8K vlruwt 0 42:38 0.00% vnlru

4 root 1 -8 0 0K 8K - 0 8:19 0.00% g_down

3 root 1 -8 0 0K 8K - 0 6:38 0.00% g_up

37 root 1 -16 0 0K 8K - 0 5:31 0.00% schedcpu

2 root 1 -8 0 0K 8K - 1 5:09 0.00% g_event

77107 dhcpd 1 96 0 6312K 6020K select 2 3:25 0.00% dhcpd

26 root 1 -64 -183 0K 8K WAIT 2 2:19 0.00% irq19: atapci1

31 root 1 171 52 0K 8K pgzero 1 1:08 0.00% pagezero

58662 root 1 96 0 3528K 3016K select 0 0:55 0.00% sendmail

36 root 1 -16 0 0K 8K sdflus 2 0:51 0.00% softdepflush

1260 root 1 96 0 3532K 2700K select 0 0:22 0.00% sshd

58674 root 1 8 0 1396K 1120K nanslp 1 0:08 0.00% cron

32 root 1 171 52 0K 8K pollid 0 0:08 0.00% idlepoll

input (vlan41) output

packets errs bytes packets errs bytes colls

3722 0 3487487 3177 0 1256737 0

3645 0 3284512 3074 0 1240264 0

3966 0 3624355 3535 0 1227606 0

3790 0 3522455 3105 0 1153742 0

3854 0 3586598 3331 0 1323956 0

4019 0 3549203 3457 0 1306030 0

3515 0 3347050 3039 0 1213536 0

3752 0 3691212 3130 0 1186182 0

4158 0 3789537 3521 0 1282970 0

3814 0 3691025 3137 0 1221839 0

3856 0 3454459 3317 0 1428461 0

4013 0 3647084 3515 0 1305347 0

3458 0 3198392 3048 0 1178225 0

3662 0 3445509 3174 0 1167926 0

4154 0 3658303 3639 0 1364658 0

3752 0 3293382 3435 0 1614687 0

3605 0 3327676 3099 0 1178017 0

3724 0 3562055 3233 0 1254234 0

4105 0 3746135 3524 0 1263135 0

3497 0 3130417 3071 0 1269788 0

3820 0 3704061 3152 0 1101660 0

vlan41 - инет

 

в 6 фре SMP почти неработает

Изменено пользователем IvanI

Поделиться сообщением


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

Сегодня попробую собрать ядро с последней ревизией http://www.freebsd.org/cgi/cvsweb.cgi/src/...th_tag=RELENG_6 dummynet

 

Может быть, это что-нибудь даст. Дальше придется заняться оптимизацией пайпов.

Поделиться сообщением


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

Сегодня попробую собрать ядро с последней ревизией http://www.freebsd.org/cgi/cvsweb.cgi/src/...th_tag=RELENG_6 dummynet

Ну у меня этот dummynet и стоит... данные по топ приводил....

Поделиться сообщением


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

Пересобрал dummynet, включил net.inet.ip.dummynet.io_fast=1

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

Поделиться сообщением


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

число правил фаервола, разделение правил через skipto входные и выходные + динамические пайпы через таблицы - это будет правильный ход.

Поделиться сообщением


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

число правил фаервола, разделение правил через skipto входные и выходные + динамические пайпы через таблицы - это будет правильный ход.

динамические пайпы -что имеется ввиду в практической реализации ?

Поделиться сообщением


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

число правил фаервола, разделение правил через skipto входные и выходные + динамические пайпы через таблицы - это будет правильный ход.
динамические пайпы -что имеется ввиду в практической реализации ?

Это с масками типа 255.255.255.255 по адресам клиентов. При использовании масок dummynet создает динамические пайпы для каждого (или не для каждого, если маска шире /32) адреса по образцу изначального. И это прекрасно! :-)

Поделиться сообщением


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

Ребята, задачи нужно разделять.

1. бордер+нат+бгп+оспф

2. шейпер в качестве прозрачного бриджа (dummynet pipe mask)

3. районный роутер+ipfw(правил 30 все через таблицы)+оспф

никаких встроенный сетевушек только Intel 1000 PT Dual Port Gigabit Server Adapter на всех машинах.

 

районный роутер:

 

бсдя 7ка

 

Intel Core 2 Duo E6550 2.33GHz 1333MHz 4Mb

 

[root@minibsd ~]# netstat -w 1

input (Total) output

packets errs bytes packets errs bytes colls

222205 0 170267418 222084 0 169850449 0

216030 0 165831139 215920 0 165499527 0

213940 0 162681299 213839 0 162252175 0

199294 0 147363679 199136 0 147014993 0

208010 0 155835438 207889 0 155464734 0

226095 0 174641537 225996 0 174262541 0

 

59 processes: 3 running, 43 sleeping, 13 waiting

CPU states: 0.0% user, 0.0% nice, 27.6% system, 0.8% interrupt, 71.6% idle

Mem: 17M Active, 6700K Inact, 56M Wired, 128K Cache, 20M Buf, 405M Free

Swap:

 

PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND

11 root 1 171 ki31 0K 8K CPU1 1 1829.5 73.97% idle: cpu1

12 root 1 171 ki31 0K 8K RUN 0 1740.8 67.19% idle: cpu0

7 root 1 -68 - 0K 8K - 0 317.0H 30.47% em0 taskq

8 root 1 -68 - 0K 8K - 1 222.2H 21.78% em1 taskq

13 root 1 -32 - 0K 8K WAIT 0 33.4H 0.78% swi4: clock s

8063 root 1 96 0 4832K 3036K select 1 429:13 0.00% ospfd

 

у роутера еще запас есть, пакетов 600к вытянет.

 

Поделиться сообщением


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

vlad111

Подскажи пожалуста по тюнингу 7, из ядра все лишнее убрал, нужные модули включил, вопрос в том какие настройки добавить в ядро и sysctl для роутера с MPD, ng_netflow, ng_nat, ipfw?

Изменено пользователем IvanI

Поделиться сообщением


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

Почитал форум, увидел, что эффективнее создать несколько пайпов, и раскидать по ним клиентов таблицами, чем создавать отдельный пайп на каждого клиента. Это можно сделать, но, может быть, в моем случае проблема не в этом? Пайпов то вроде немного, в пределах 200 штук (в одну сторону).
Это тебе не много? С учётом того, что каждый пакет проходит по всему набору правил дважды: на входе и на выходе (хотя в очередь пакет попадает только один раз - via vlanX)? Делай таблицу! (Или хотя бы используй skipto.)

 

И ещё посмотри в сторону maxusers и регулируемых им параметров - ядру может не хватать выделяемых при старте системы таблиц.

Поделиться сообщением


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

Собрал дрова от яндекса в ядро, вечерком ребутнусь, посмотрю, как будет.
А дрова от Яндекса вообще на другое направлены. Они - для нагруженных серверов, которые сами трафик генерят. Для роутера толку нет....

Да ну?

У меня отлично на роутере встали в своё время. Год к нему не подходил, а до этого менять железо уже собирался.

Поделиться сообщением


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

В общем, на данный момент результаты - сделал, чтобы бОльшая часть пакетов, не относящихся к пайпам, проходила мимо правил. Также поставил последнюю версию dummynet из ветки releng_6, включил dummynet.io.fast, и использую дрова от Яндекса.

 

Нагрузка порядка 20-30%, грузит swi1:net в основном.

 

Планирую заняться оптимизацией правил пайпов. Еще тестовый сервер буду брать, проверю, как будет работать с SMP.

Поделиться сообщением


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

Понимаю что времени не мало прошло, но все же...

networks чем битва закончилась, схожая проблема встала, перерываю НАГ, гуглю, практические рекомендации и решение из продакшена очень редко можно найти (

Поделиться сообщением


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

 

Практические решения из продакшина - купить Core i7, снять polling, поставить 7.2-STABLE с yandex driver.

Поделиться сообщением


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

Еще можно добавить: если не планируется на этой машине ничего кроме шейпа, стоит поиграться с планировщиком 4BSD в место ULE. Лично у меня производительность в пиках с ним повыше, а интерактивность машинки в общем-то и не нужна.

Поделиться сообщением


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

Еще можно добавить: если не планируется на этой машине ничего кроме шейпа, стоит поиграться с планировщиком 4BSD в место ULE. Лично у меня производительность в пиках с ним повыше, а интерактивность машинки в общем-то и не нужна.

Что ? На глаз заметно ? Операционка какая ?

Поделиться сообщением


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

Еще можно добавить: если не планируется на этой машине ничего кроме шейпа, стоит поиграться с планировщиком 4BSD в место ULE. Лично у меня производительность в пиках с ним повыше, а интерактивность машинки в общем-то и не нужна.

Что ? На глаз заметно ? Операционка какая ?

заметно... проверялось 7.2-ST и 7.0-R

Поделиться сообщением


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

заметно... проверялось 7.2-ST и 7.0-R

Тьфу-ты... бит-то сколько ?

Поделиться сообщением


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

Изначально смотрел на i7, а что под него взять , вариантов типа Intel S3210SH не нашел (( А со всякими сохо асусами, гигабайтами и прочим поднадоело воевать (

Поделиться сообщением


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

 

Да ничего не берите. Под него ничего рабочего нету.

Поделиться сообщением


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

:)

Перенес обсуждение сюда

http://forum.nag.ru/forum/index.php?showto...4336&st=100

Поделиться сообщением


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

заметно... проверялось 7.2-ST и 7.0-R

Тьфу-ты... бит-то сколько ?

64

Поделиться сообщением


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.