The OpenNET Project / Index page

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

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

"FreeBSD, сеть, большое число пакетов."  +/
Сообщение от pr0nix (ok) on 20-Дек-09, 23:52 
Есть сервер FreeBSD 7.2-RELEASE-p4 с 2 сетевыми(Broadcom,1000baseTX), одна смотрит в Интернет, другая в локалку. У клиентов из локалки он default route и часть из них (чтобы не устанавливать vpn подключение) ходит в Интернет через nat, реализованный средствами PF. Надо отметить, что таких клиентов очень мало и большая часть приходящих пакетов просто отбрасывается.
Для простоты будем считать, что ядро GENERIC, все sysctl дефолтные.
В часы пик на сервер приходит огромное число пакетов, ping дает больше 60% потерь
# netstat -w 1
            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
     19403     0    2320139      19954     0    3015575     0
     19274     0    2293487      19656     0    2438573     0
     18090     0    2309526      18463     0    2948751     0
     16219     0    2067349      16654     0    2721160     0
     16649     0    2054777      17096     0    2632859     0
     13568     0    1889023      13820     0    2462823     0
     14221     0    1944276      14520     0    2611257     0
     14232     0    2047085      14504     0    2733930     0
     11533     0    1767689      11933     0    2526629     0

Подскажите, какие параметры sysctl надо подтянуть, чтобы сервер справлялся с таким количеством пакетов?

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

Оглавление

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


1. "FreeBSD, сеть, большое число пакетов."  +/
Сообщение от A Shep email on 21-Дек-09, 11:21 
мало информации даете, добавьте информации из top -SP, добавляли что-то в sysctl? считать "GENERIC" - а он действительно стоит или всетаки чтото изменили? )
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "FreeBSD, сеть, большое число пакетов."  +/
Сообщение от pr0nix (ok) on 21-Дек-09, 12:28 
>мало информации даете, добавьте информации из top -SP, добавляли что-то в sysctl?
>считать "GENERIC" - а он действительно стоит или всетаки чтото изменили?
>)

Сейчас нагрузка не такая большая, по ping-y потерь нет.
# netstat -w 1
            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
      6358     0    1071897       6793     0    1478764     0
      5324     0     922911       5613     0    1409409     0
      7685     0    1151598       8140     0    1710895     0
      5708     0     938901       6096     0    1425543     0
      6946     0    1137547       7384     0    1628002     0
      6528     0    1033960       6931     0    1527746     0
      4730     0     927872       5168     0    1386123     0
      5874     0     979754       6155     0    1488519     0
      6465     0     967571       7018     0    1479549     0
      5817     0     942354       6218     0    1299708     0
      5499     0     988677       5939     0    1462583     0
      5239     0     849316       5753     0    1360063     0

# top -SP
last pid: 77864;  load averages:  0.34,  0.21,  0.12                                                                                                                                                                up 0+15:00:07  11:24:55
215 processes: 10 running, 188 sleeping, 17 waiting
CPU 0:  1.1% user,  0.0% nice,  0.4% system,  0.0% interrupt, 98.5% idle
CPU 1:  2.3% user,  0.0% nice,  1.1% system,  0.0% interrupt, 96.6% idle
CPU 2:  8.6% user,  0.0% nice,  2.3% system,  0.0% interrupt, 89.1% idle
CPU 3:  0.0% user,  0.0% nice,  1.9% system,  0.0% interrupt, 98.1% idle
CPU 4:  0.0% user,  0.0% nice,  0.0% system,  1.5% interrupt, 98.5% idle
CPU 5:  0.0% user,  0.0% nice,  0.4% system,  0.0% interrupt, 99.6% idle
CPU 6:  0.0% user,  0.0% nice,  3.0% system,  0.0% interrupt, 97.0% idle
CPU 7:  0.0% user,  0.0% nice,  0.0% system, 10.1% interrupt, 89.9% idle
Mem: 1265M Active, 5701M Inact, 684M Wired, 86M Cache, 399M Buf, 191M Free
Swap: 10G Total, 10G Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
   14 root        1 171 ki31     0K    16K CPU4   4 867:40 100.00% idle: cpu4
   12 root        1 171 ki31     0K    16K CPU6   6 867:09 100.00% idle: cpu6
   16 root        1 171 ki31     0K    16K CPU2   2 859:29 100.00% idle: cpu2
   13 root        1 171 ki31     0K    16K CPU5   5 860:45 98.88% idle: cpu5
   15 root        1 171 ki31     0K    16K CPU3   3 870:48 98.68% idle: cpu3
   17 root        1 171 ki31     0K    16K CPU1   1 837:09 98.39% idle: cpu1
   18 root        1 171 ki31     0K    16K RUN    0 820:04 96.29% idle: cpu0
   11 root        1 171 ki31     0K    16K CPU7   7 863:25 96.00% idle: cpu7
59306 root        9  44    0  1491M  1280M select 2   3:19 11.47% trinity-core
   19 root        1 -44    -     0K    16K WAIT   7 100:38  9.28% swi1: net
   20 root        1 -32    -     0K    16K WAIT   5   7:26  0.49% swi4: clock sio
   48 root        1 -68    -     0K    16K -      6  22:23  0.10% dummynet
  893 root        1 -68    -     0K    16K sleep  1   3:28  0.00% ng_queue3
  897 root        1 -68    -     0K    16K sleep  2   3:27  0.00% ng_queue7
  890 root        1 -68    -     0K    16K sleep  0   3:27  0.00% ng_queue0
  894 root        1 -68    -     0K    16K sleep  3   3:27  0.00% ng_queue4
  896 root        1 -68    -     0K    16K sleep  2   3:27  0.00% ng_queue6
  892 root        1 -68    -     0K    16K sleep  0   3:27  0.00% ng_queue2
  891 root        1 -68    -     0K    16K sleep  1   3:26  0.00% ng_queue1
  895 root        1 -68    -     0K    16K sleep  1   3:26  0.00% ng_queue5
7232 root        2   4    0 21440K  9888K kqread 3   3:12  0.00% transmission-daemon
  899 root        1  44    0 27528K  7324K select 0   2:07  0.00% snmpd
12093 root        1  44    0 71100K 21476K select 1   1:58  0.00% ghost++
   22 root        1 -16    -     0K    16K -      1   1:18  0.00% yarrow
    3 root        1  -8    -     0K    16K -      0   1:17  0.00% g_up
   57 root        1  20    -     0K    16K syncer 0   0:55  0.00% syncer
   37 root        1 -64    -     0K    16K WAIT   6   0:42  0.00% irq19: uhci1+
    4 root        1  -8    -     0K    16K -      0   0:36  0.00% g_down
8400 root        1  44    0 38972K 14928K select 1   0:32  0.00% ghost++
8403 root        1   8    0 38844K 14640K nanslp 0   0:31  0.00% ghost++
12096 root        1  44    0 38972K 14672K select 0   0:31  0.00% ghost++
   49 root        1  -8    -     0K    16K m:w1   3   0:29  0.00% g_mirror gm0
12394 root        2   8    0 23240K  5244K nanslp 6   0:27  0.00% trinity-realm
25716 root        2   8    0 23240K  5328K nanslp 3   0:25  0.00% trinity-realm
   47 root        1   8    -     0K    16K pftm   0   0:17  0.00% pfpurge
  964 cm          6   8    0 27200K  5236K nanslp 1   0:08  0.00% icecast
77648 root        1  46    0 31084K  6316K select 2   0:07  0.00% proftpd
  769 root        1  44    0  5692K  1156K select 1   0:04  0.00% syslogd
    2 root        1  -8    -     0K    16K -      1   0:04  0.00% g_event
  514 _pflogd     1 -58    0  6888K  1336K bpf    0   0:04  0.00% pflogd

В ядре убраны ненужные devices и добавлено
options         IPSEC
device          crypto
device          cryptodev

options         GEOM_MIRROR
options         ACCEPT_FILTER_HTTP
options         ACCEPT_FILTER_DATA
options         QUOTA
options         NULLFS
options         IPFIREWALL
options         IPFIREWALL_FORWARD
options         IPFIREWALL_VERBOSE
options         DUMMYNET
options         DEVICE_POLLING
options         HZ=1000

device          coretemp
device          ipmi
device          pf
device          pflog
device          pfsync

Отключение POLLING ситуации не меняет, HZ=1000 менять не пробовал - вроде как DUMMYNET тогда неправильно работает. При дефолтных sysctl тормоза в часы пик остаются, при таких тоже:
security.bsd.see_other_uids=0
kern.coredump=0
net.inet.ip.fw.one_pass=0
net.inet.ip.dummynet.io_fast=0
net.inet.ip.dummynet.hash_size=256

net.inet.tcp.sendspace=2097152
net.inet.tcp.recvspace=2097152
net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.recvbuf_max=16777216
net.inet.tcp.mssdflt=1460
net.inet.tcp.slowstart_flightsize=54
net.inet.tcp.tcbhashsize=4096
net.inet.tcp.msl=15000

net.inet.icmp.icmplim=100
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1

net.inet.ip.fastforwarding=1
kern.ipc.maxsockets=204800
kern.ipc.maxsockbuf=16777216
kern.ipc.nmbclusters=262144
kern.ipc.somaxconn=24096
kern.polling.each_burst=512
kern.polling.burst_max=1000
kern.polling.burst=1000
net.inet.ip.intr_queue_maxlen=1024

В моменты сетевых перегрузок Load Average редко поднимается выше 1,5.


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

3. "FreeBSD, сеть, большое число пакетов."  +/
Сообщение от mr_gfd on 21-Дек-09, 14:04 
Сетевухи сменить на em.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "FreeBSD, сеть, большое число пакетов."  +/
Сообщение от pr0nix (ok) on 21-Дек-09, 14:45 
>Сетевухи сменить на em.

При каком количестве пакетов не будет затыков на em?
Сервер HP ProLiant DL-160 G5, сетевые встроенные, интересуют именно программные способы решения проблемы.


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

5. "FreeBSD, сеть, большое число пакетов."  +/
Сообщение от mr_gfd on 21-Дек-09, 15:39 
>>Сетевухи сменить на em.
>
>При каком количестве пакетов не будет затыков на em?
>Сервер HP ProLiant DL-160 G5, сетевые встроенные, интересуют именно программные способы решения
>проблемы.

bge - крайне сомнительно. На нормально em можно без напрягов 100kpps протолкать, а с напрягами на nag.ru и 1Mpps делали.

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

6. "FreeBSD, сеть, большое число пакетов."  +/
Сообщение от pr0nix (ok) on 21-Дек-09, 16:11 
>bge - крайне сомнительно. На нормально em можно без напрягов 100kpps протолкать,
>а с напрягами на nag.ru и 1Mpps делали.

Т.е. дело исключительно в железе и тюнинг помочь не сможет? Слабовата сама сетевая или ее драйвер в FreeBSD?

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

8. "FreeBSD, сеть, большое число пакетов."  +/
Сообщение от DeadLoco (ok) on 26-Дек-09, 01:43 
>Т.е. дело исключительно в железе и тюнинг помочь не сможет? Слабовата сама
>сетевая или ее драйвер в FreeBSD?

Железяка кривая. Некоторые сетевухи вообще полусофтверные и дергают систему прерываниями нещадно. Разумеется, с потерей пропускной. Хорошие карточки умеют сами накапливать пакеты во внутреннем буфере и дергают систему только когда припрет. Этакий поллинг средствами самой сетевухи.

Но, правда, и кривыми драйверами можно хорошую железку превратить в кривое тормозилище.

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

7. "FreeBSD, сеть, большое число пакетов."  +/
Сообщение от dw email(??) on 21-Дек-09, 19:31 
5.4-PRERELEASE
em0 и em1

потерь нет.

netstat -w 1
            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
     60920     0   48921461      61263     0   49594767     0
     63191     0   51179901      63431     0   52129590     0
     52702     0   40281606      52805     0   40637007     0
     51649     0   38894374      51728     0   39476698     0
     49687     0   36606629      49954     0   37630100     0
     54443     0   40972603      54871     0   42608834     0
     53973     0   40544866      55004     0   43926172     0
     53207     0   39873037      54280     0   43491150     0
     53942     0   41342597      54369     0   43106611     0
     55982     0   43031996      57135     0   46622795     0
     50619     0   38154174      50867     0   39281929     0
     48890     0   37502603      49020     0   38153557     0
     51122     0   37872488      51368     0   39020272     0
     50475     0   37218656      50573     0   37754652     0

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

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

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




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

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