Страница 1 из 3

FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-11 10:46:02
mmvds
Доброе утро, есть машина
2X5620/3GR1066T/SATA6/2T500G7/6HSA/DVD±RWT/2GLAN/1C/2US/IPMI+/2PS500/4PCIe/RMK/CAR3S
Стоит FreeBSD 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Thu Feb 3 16:56:48 SAMT 2011 amd64
Используется как роутер сервер в ipfw 25 правил
вечером в час пик можно наблюдать такую картину:
Изображение
Изображение
т.е. проц грузится на 15% и трафик начинает падать, хотя 21 самый час пик
При этом многопоточость интерраптов включена и видно что работает:

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

last pid: 10381;  load averages:  0.00,  0.00,  0.00    up 3+12:42:41  22:39:17
183 processes: 19 running, 112 sleeping, 1 stopped, 51 waiting
CPU 0:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 1:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 2:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 3:   0.0% user,  0.0% nice,  1.1% system,  0.0% interrupt, 98.9% idle
CPU 4:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 5:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 6:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 7:   0.0% user,  0.0% nice,  0.0% system,  2.3% interrupt, 97.7% idle
CPU 8:   0.0% user,  0.0% nice,  0.0% system, 16.5% interrupt, 83.5% idle
CPU 9:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 10:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 11:  0.0% user,  0.0% nice,  0.0% system, 98.5% interrupt,  1.5% idle
CPU 12:  0.0% user,  0.0% nice,  0.0% system,  1.9% interrupt, 98.1% idle
CPU 13:  0.0% user,  0.0% nice,  0.0% system,  1.1% interrupt, 98.9% idle
CPU 14:  0.0% user,  0.0% nice,  0.0% system,  100% interrupt,  0.0% idle
CPU 15:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 28M Active, 231M Inact, 330M Wired, 392K Cache, 63M Buf, 2371M Free
Swap: 4096M Total, 4096M Free
т.е. два ядра загружены интерраптами полностью, на остальные тоже идет часть нагрузки, но суммарную нагрузку процессора 15% на прерываниях не переходит, подскажите что можно подкрутить?

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

sysctl net.isr
net.isr.numthreads: 15
net.isr.defaultqlimit: 256
net.isr.maxqlimit: 10240
net.isr.bindthreads: 0
net.isr.maxthreads: 15
net.isr.direct: 0
net.isr.direct_force: 0

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

sysctl net.inet.ip.dummynet
net.inet.ip.dummynet.io_pkt_drop: 285409230
net.inet.ip.dummynet.io_pkt_fast: 5383687691
net.inet.ip.dummynet.io_pkt: 11744876536
net.inet.ip.dummynet.queue_count: 0
net.inet.ip.dummynet.fsk_count: 40
net.inet.ip.dummynet.si_count: 571
net.inet.ip.dummynet.schk_count: 80
net.inet.ip.dummynet.tick_lost: 0
net.inet.ip.dummynet.tick_diff: 4876573
net.inet.ip.dummynet.tick_adjustment: 4773317
net.inet.ip.dummynet.tick_delta_sum: 424
net.inet.ip.dummynet.tick_delta: 504
net.inet.ip.dummynet.red_max_pkt_size: 1500
net.inet.ip.dummynet.red_avg_pkt_size: 512
net.inet.ip.dummynet.red_lookup_depth: 256
net.inet.ip.dummynet.expire_cycle: 0
net.inet.ip.dummynet.expire: 1
net.inet.ip.dummynet.debug: 0
net.inet.ip.dummynet.io_fast: 1
net.inet.ip.dummynet.pipe_byte_limit: 1048576
net.inet.ip.dummynet.pipe_slot_limit: 1000
net.inet.ip.dummynet.hash_size: 8192
полный sysctl прикрепляю

Опции ядра:

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

options         HZ=2000
options         NBUF=4096
options         IPFIREWALL
options         IPFIREWALL_FORWARD
options         IPFIREWALL_NAT
options         IPDIVERT
options         DUMMYNET
options         NETGRAPH
options         NETGRAPH_ETHER
options         NETGRAPH_EIFACE
options         NETGRAPH_IPFW
options         NETGRAPH_IFACE
options         NETGRAPH_KSOCKET
options         NETGRAPH_NETFLOW
options         NETGRAPH_NAT
options         NETGRAPH_SOCKET
options         NETGRAPH_SPLIT
options         LIBALIAS
Конфиг ядра прикрепляю (as.txt)

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

ifconfig -a
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>
        ether 00:25:90:0b:d4:b2
        inet 10.196.1.3 netmask 0xffffff00 broadcast 10.196.1.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>
        ether 00:25:90:0b:d4:b3
        inet белый_ip netmask 0xfffffffc broadcast белый_ip+1
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-11 13:32:10
mav
Проверь через `pciconf -lvcb` поддерживают ли твои сетевые MSI/MSI-X и используются ли они. Если нет - проверь не шарят ли они с кем-то вектора.

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-11 14:32:12
mmvds
Вроде есть, включены

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

/etc/firewall# pciconf -lvcb | grep MSI
    cap 05[60] = MSI supports 2 messages, vector masks
    cap 05[60] = MSI supports 2 messages, vector masks
    cap 05[60] = MSI supports 2 messages, vector masks
    cap 05[60] = MSI supports 2 messages, vector masks
    cap 05[60] = MSI supports 2 messages, vector masks
    cap 11[80] = MSI-X supports 1 message in map 0x10
    cap 11[80] = MSI-X supports 1 message in map 0x10
    cap 11[80] = MSI-X supports 1 message in map 0x10
    cap 11[80] = MSI-X supports 1 message in map 0x10
    cap 11[80] = MSI-X supports 1 message in map 0x10
    cap 11[80] = MSI-X supports 1 message in map 0x10
    cap 11[80] = MSI-X supports 1 message in map 0x10
    cap 11[80] = MSI-X supports 1 message in map 0x10
    cap 05[60] = MSI supports 1 message, 64 bit
    cap 05[80] = MSI supports 1 message
    cap 05[80] = MSI supports 1 message
    cap 05[80] = MSI supports 1 message
    cap 05[80] = MSI supports 16 messages
    cap 05[d0] = MSI supports 1 message, 64 bit
    cap 11[a0] = MSI-X supports 5 messages in map 0x1c enabled
    cap 05[d0] = MSI supports 1 message, 64 bit
    cap 11[a0] = MSI-X supports 5 messages in map 0x1c enabled
полный pciconf -lvcb прикрепляю

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-11 15:46:24
mav
Посмотри в `top -SH` на прерывания какой сетевой карты приходится нагрузка. Нагрузка в контексте прерывания помимо самой карты (что врядли) может происходить и от фаервола и от Netgraph, которые вызываются по приему пакета. Проверяй что там у тебя есть Так-же туда могда-бы попадать и остальная обработка пакетов, но у тебя net.isr.direct выключен.

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-11 18:00:11
ProFTP
ядро и все настройки поставить дефолтные...

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-12 10:57:38
mmvds
поставил

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

net.isr.direct: 1
net.isr.direct_force: 1
Стало полегче.
Вопрос про использование 2 ядер на 100% при полной загрузке остается, почему не используются остальные свободные?
net.isr.maxthreads: 15
т.е. утром нагрузка примерно такая:

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

last pid: 50014;  load averages:  0.06,  0.03,  0.00        up 5+00:53:25  10:50:01
183 processes: 19 running, 112 sleeping, 1 stopped, 51 waiting
CPU 0:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 1:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 2:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 3:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 4:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 5:   0.0% user,  0.0% nice, 38.7% system,  0.0% interrupt, 61.3% idle
CPU 6:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 7:   0.0% user,  0.0% nice,  0.0% system, 22.2% interrupt, 77.8% idle
CPU 8:   0.0% user,  0.0% nice,  0.0% system,  1.5% interrupt, 98.5% idle
CPU 9:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 10:  0.0% user,  0.0% nice,  0.4% system,  0.0% interrupt, 99.6% idle
CPU 11:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 12:  0.0% user,  0.0% nice,  0.0% system, 40.6% interrupt, 59.4% idle
CPU 13:  0.0% user,  0.0% nice,  0.0% system,  4.5% interrupt, 95.5% idle
CPU 14:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 15:  0.0% user,  0.0% nice,  1.1% system,  0.0% interrupt, 98.9% idle
Mem: 28M Active, 291M Inact, 326M Wired, 360K Cache, 63M Buf, 2315M Free
Swap: 4096M Total, 4096M Free
вечером при полной нагрузке

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

last pid: 10381;  load averages:  0.00,  0.00,  0.00    up 3+12:42:41  22:39:17
183 processes: 19 running, 112 sleeping, 1 stopped, 51 waiting
CPU 0:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 1:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 2:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 3:   0.0% user,  0.0% nice,  1.1% system,  0.0% interrupt, 98.9% idle
CPU 4:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 5:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 6:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 7:   0.0% user,  0.0% nice,  0.0% system,  2.3% interrupt, 97.7% idle
CPU 8:   0.0% user,  0.0% nice,  0.0% system, 16.5% interrupt, 83.5% idle
CPU 9:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 10:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 11:  0.0% user,  0.0% nice,  0.0% system,  100% interrupt,  0.0% idle
CPU 12:  0.0% user,  0.0% nice,  0.0% system,  1.9% interrupt, 98.1% idle
CPU 13:  0.0% user,  0.0% nice,  0.0% system,  1.1% interrupt, 98.9% idle
CPU 14:  0.0% user,  0.0% nice,  0.0% system,  100% interrupt,  0.0% idle
CPU 15:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 28M Active, 231M Inact, 330M Wired, 392K Cache, 63M Buf, 2371M Free
Swap: 4096M Total, 4096M Free
И дальше начинается затык процессора (суммарная нагрузка не увеличивается) хотя остается 10 потоков с загрузкой 0,
в чем может быть причина?

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-12 11:01:15
mav
Ну так может ты следующие строки из `top -SH` покажеш как я просил?

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-12 11:07:09
mmvds
Извиняюсь, вчера не копирнул, а пока загрузка не большая

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

last pid: 50515;  load averages:  0.00,  0.01,  0.00                     up 5+01:11:26  11:08:02
185 processes: 17 running, 114 sleeping, 1 stopped, 53 waiting
CPU:  0.0% user,  0.0% nice,  0.1% system,  4.4% interrupt, 95.4% idle
Mem: 31M Active, 291M Inact, 327M Wired, 360K Cache, 63M Buf, 2312M Free
Swap: 4096M Total, 4096M Free

  PID USERNAME  PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
   11 root      171 ki31     0K   256K CPU13  13 120.0H 100.00% {idle: cpu13}
   11 root      171 ki31     0K   256K CPU3    3 118.5H 100.00% {idle: cpu3}
   11 root      171 ki31     0K   256K CPU2    2 118.2H 100.00% {idle: cpu2}
   11 root      171 ki31     0K   256K CPU9    9 117.8H 100.00% {idle: cpu9}
   11 root      171 ki31     0K   256K CPU6    6 117.6H 100.00% {idle: cpu6}
   11 root      171 ki31     0K   256K RUN     0 117.1H 100.00% {idle: cpu0}
   11 root      171 ki31     0K   256K CPU1    1 116.5H 100.00% {idle: cpu1}
   11 root      171 ki31     0K   256K CPU4    4 114.6H 100.00% {idle: cpu4}
   11 root      171 ki31     0K   256K CPU11  11 108.9H 100.00% {idle: cpu11}
   11 root      171 ki31     0K   256K CPU15  15 100.6H 100.00% {idle: cpu15}
   11 root      171 ki31     0K   256K CPU14  14  85.8H 100.00% {idle: cpu14}
   11 root      171 ki31     0K   256K CPU8    8 117.5H 99.90% {idle: cpu8}
   11 root      171 ki31     0K   256K CPU10  10 108.3H 99.61% {idle: cpu10}
   11 root      171 ki31     0K   256K CPU5    5 116.3H 96.48% {idle: cpu5}
   11 root      171 ki31     0K   256K CPU7    7 115.5H 77.78% {idle: cpu7}
   11 root      171 ki31     0K   256K CPU12  12 114.4H 57.18% {idle: cpu12}
   12 root      -68    -     0K   848K WAIT   12 406:08 45.85% {irq261: em1}
   12 root      -68    -     0K   848K WAIT    7 316:08 26.37% {irq256: em0}
    0 root      -68    0     0K   272K -       4 262:22  9.42% {dummynet}
   12 root      -68    -     0K   848K WAIT   13  69:36  4.00% {irq262: em1}
    0 root      -68    0     0K   272K -      14  25:20  0.68% {em0 txq}
   12 root      -68    -     0K   848K WAIT    8  67:55  0.29% {irq257: em0}
   12 root      -32    -     0K   848K WAIT    2  64:53  0.10% {swi4: clock}
   12 root      -44    -     0K   848K WAIT   14  60.3H  0.00% {swi1: netisr 14}
   12 root      -44    -     0K   848K WAIT   15  49.0H  0.00% {swi1: netisr 15}
    0 root      -68    0     0K   272K -      10  22:53  0.00% {em1 txq}
   14 root      -16    -     0K    16K -       0  12:38  0.00% yarrow
    0 root      -68    0     0K   272K -       0   4:12  0.00% {em1 rxq}
 1204 root       44    0 27012K  6912K select  0   3:30  0.00% snmpd
   17 root       44    -     0K    16K syncer  0   2:38  0.00% syncer
    0 root       76    0     0K   272K sched   0   1:05  0.00% {swapper}
 5578 root       44    0 20852K  8360K select  0   0:18  0.00% perl5.10.1
 1915 root       44    0 18388K  3404K select  0   0:18  0.00% {dispatcher}

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-12 13:01:20
voider
mmvds ,а что за порт такой который так красиво графики выводит?

а тебя Dosят походу

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-12 18:43:32
mmvds
Обычный Cacti на мониторинг сервере, собирает инфу о всех серверах по snmp

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-13 13:33:52
voider
mmvds писал(а):Обычный Cacti на мониторинг сервере, собирает инфу о всех серверах по snmp
ясно потестю ,а зачем тебе options HZ=2000 по умолчанию options HZ=1000 а на 6 ке options HZ=100 из за этой хрени процы греются ,но зато Дос атаки можно выдержать

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-16 21:13:33
mmvds
Врядли это ддос,
Вот новая вечерняя загрузка с
net.isr.direct: 1
net.isr.direct_force: 1
Изображение
Изображение
картинка красивее, но пинги у клиентов начинают рости :(

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

last pid: 84879;  load averages:  1.35,  1.36,  1.31    up 9+10:47:59  20:44:35
183 processes: 20 running, 111 sleeping, 1 stopped, 51 waiting
CPU 0:   0.0% user,  0.0% nice,  1.1% system,  0.0% interrupt, 98.9% idle
CPU 1:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 2:   0.0% user,  0.0% nice,  100% system,  0.0% interrupt,  0.0% idle
CPU 3:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 4:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 5:   0.0% user,  0.0% nice, 94.4% system,  0.0% interrupt,  5.6% idle
CPU 6:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 7:   0.0% user,  0.0% nice,  0.0% system, 84.2% interrupt, 15.8% idle
CPU 8:   0.0% user,  0.0% nice,  0.0% system,  1.1% interrupt, 98.9% idle
CPU 9:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 10:  0.0% user,  0.0% nice,  0.0% system,  0.4% interrupt, 99.6% idle
CPU 11:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 12:  0.0% user,  0.0% nice,  0.0% system, 96.2% interrupt,  3.8% idle
CPU 13:  0.0% user,  0.0% nice,  0.0% system,  4.5% interrupt, 95.5% idle
CPU 14:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 15:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 29M Active, 356M Inact, 342M Wired, 360K Cache, 63M Buf, 2234M Free
Swap: 4096M Total, 4096M Free

  PID USERNAME  PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
   11 root      171 ki31     0K   256K CPU6    6 223.2H 100.00% {idle: cpu6}
   11 root      171 ki31     0K   256K CPU9    9 223.2H 100.00% {idle: cpu9}
   11 root      171 ki31     0K   256K CPU1    1 221.8H 100.00% {idle: cpu1}
   11 root      171 ki31     0K   256K RUN     0 221.4H 100.00% {idle: cpu0}
   11 root      171 ki31     0K   256K CPU8    8 221.3H 100.00% {idle: cpu8}
   11 root      171 ki31     0K   256K CPU3    3 220.6H 100.00% {idle: cpu3}
   11 root      171 ki31     0K   256K CPU11  11 209.1H 100.00% {idle: cpu11}
   11 root      171 ki31     0K   256K CPU10  10 208.4H 100.00% {idle: cpu10}
   11 root      171 ki31     0K   256K CPU15  15 205.8H 100.00% {idle: cpu15}
   11 root      171 ki31     0K   256K CPU14  14 191.1H 100.00% {idle: cpu14}
   12 root      -68    -     0K   848K CPU12  12  57.8H 100.00% {irq261: em1}
    0 root      -68    0     0K   272K CPU2    2 170:18 100.00% {em1 rxq}
   11 root      171 ki31     0K   256K CPU13  13 223.9H 96.92% {idle: cpu13}
   12 root      -68    -     0K   848K CPU7    7  40.5H 83.94% {irq256: em0}
   11 root      171 ki31     0K   256K CPU4    4 208.3H 83.89% {idle: cpu4}
    0 root      -68    0     0K   272K -       5  36.3H 67.29% {dummynet}
   11 root      171 ki31     0K   256K CPU5    5 217.3H 53.91% {idle: cpu5}
   11 root      171 ki31     0K   256K RUN     7 185.9H 16.46% {idle: cpu7}
   11 root      171 ki31     0K   256K RUN    12 169.1H  3.32% {idle: cpu12}
   12 root      -68    -     0K   848K WAIT   13 157:24  1.76% {irq262: em1}
   12 root      -68    -     0K   848K WAIT    8 130:27  0.73% {irq257: em0}
   12 root      -32    -     0K   848K WAIT   10 111:50  0.39% {swi4: clock}
    0 root      -68    0     0K   272K -       0  41:14  0.10% {em1 txq}
   17 root       44    -     0K    16K syncer  0   5:40  0.05% syncer
    0 root      -68    0     0K   272K -       1   5:21  0.05% {em0 rxq}
так думаю, проблема в этом:
12 root -68 - 0K 848K CPU12 12 57.8H 100.00% {irq261: em1}
вопрос, что можно сделать? можно что-то еще что подкрутить?

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-16 21:21:03
mav
Что у тебя еще на этой машине? NAT? Netflow? Dummynet, как я вижу.

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-16 21:39:40
mmvds
да, NAT, сброс флоузов на биллинг и диспатчер скрипт - ловит события подключения/отключения клиентов для раскидывания их по таблицам ipfw, но на нем загрузка 0%

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-16 21:54:14
mav
Ну так попробуй поотключать по одному.

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-19 19:00:22
mak_v_
может конечно и не в тему - попробуйти включить пуллинг на сетевых

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-23 22:55:43
mmvds
По поводу проблемы, мне подсказали что больше чем 2 ядра не нагрузится, как ни старайся, т.е. 2процессора * 4 ядра = 8 ядер, 100%/8 = 12,5% - одно ядро, умножаем на 2, 25%, именно до этой цифры после всех манипуляций и доходит нагрузка процессора. Посоветовали искать источник проблемы, а не устранять последствия.

Проанализировал логи трафика по частоте отправки пакетов с 1 ip, получил следующее:
около 2% юзеров отправляют от 1000 до 30 000 пакетов за 5 минут, еще 10% от 100 до 1000, все остальные менее 100 пакетов за 5 минут
сделал список тех 2% юзеров, от которых отправка пакетов наибольшая и отдал техподдержке на обзвон, чтоб проверили на вирусы, как оказалось, многие просто пользуются торентами с кучей коннектов им "наплевать, их все устраивает".
Пробовал уменьшать исходящую скорость, нагрузка интерраптами падает прямо пропорционально, что конечно радует, но не является корректным выходом из ситуации :(

Вопрос собственно в том, возможно ли как-то побороть проблему торентов?
Ip у клиентов серые, натятся на 1 ip

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-23 23:36:04
mak_v_
все же попробуйте включить пуллинг на сетевых
касательно проблемы большого кол-ва соединений - с помощью фаервола можете ограничить кол-во сессий, обычно до 100 хватает
и нат на ipfw обладает свойством "грузить", я лично ушёл в сторону pf - нагрузка значительно снизилась

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-24 0:17:11
Alex Keda
допишите в договор - 20 коннектов на IP например
и этих 2% и режте на это число, тыкая в договор
быстро научатся лимиты ставить

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-24 12:21:15
mmvds
Поллинг пробовал - никакой разницы в количествах интерраптов не дало.
Про pf - попробую, через неделю должна появиться машина для тестов.
про кол-во сессий - спасибо, сейчас поищу как сделать

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-24 12:29:30
hizel
а какой порядок pps(Packet Per Second) ?

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

netstat -I em0 -w 1
современные сетевушки могут масштабироватся на четыре ядра и поллинг в интеловских сетевых драйверах встроенный

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-25 0:03:49
проходил_мимо
pf однопоточный больше чем на 1 ядре работать не сможет :)
да к тому же em драйвер тоже однопоточный.
Существует неофициальный многопоточный em драйвер от разработчиков яндекса см. http://forum.nag.ru/forum/index.php?sho ... 5411&st=40

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-25 14:26:30
mmvds
Подскажите пожалуйста, как обрезать кол-во исходящих соединений?
фаервол выглядит так:

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

ipfw show
00099      1208       57984 deny tcp from table(77) to any dst-port 25
04998   1333646   200103483 skipto 5990 ip from table(101) to any in via em0
05090  31865077 13137215634 pipe tablearg ip from table(121) to any in via em0
05990  33114850 13284266094 allow ip from table(121) to any in via em0
08090  33088011 13291228363 ngtee 21 ip from table(121) to any out via em1
09999   1535430   314200780 skipto 20000 ip from table(100) to any out via em1
10090  31565576 12984870479 nat 100 ip from table(121) to any out via em1
20000  39230088 37947801039 nat 100 ip from any to me in via em1
29999    982918    75236575 skipto 30590 ip from any to table(101) in via em1
30090  37667969 37956574650 pipe tablearg ip from any to table(122) in via em1
30590  36808048 36029432254 ngtee 21 ip from any to table(121) in via em1
31090  36808326 36029402760 allow ip from any to table(121) in via em1
51090  36949740 36204271464 allow ip from any to table(121) out via em0
60000  33099189 13297599997 allow ip from any to any out via em1
65535 527048987 34225950262 deny ip from any to any
em1 - внешний интерфейс
em0 - внутренний интерфейс
таблица 77 - пользователи, замечанные в спаме
таблицы 121/122 - серые Ip юзеров
таблица 100 - все белые IP
таблица 101 - ip без ограничения скорости

Пробую добавить в самое начало правило для тестового Ip ограничение на 20 соединений

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

add 1 allow ip from Ip_тестового_компа_с_белым_ip to any keep-state limit src-addr 20 
И вся сеть сразу падает
пробовал уточнить что на исхдящее через em1

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

add 1 allow ip from Ip_тестового_компа_с_белым_ip/32 to any out via em1 keep-state limit src-addr 20
но опять же ложится вся сеть

Подскажите, пожалуйста, что я делаю не так и как исправить.

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-26 9:14:54
LMik
Может быть конечно не в тему... но как у вас получилось 2*4 = 16 ядер. Без гипертрединга не обошлось, и сейчас у вас упор приходится 2 раза на пол ядра.

На сервере такого класса с хорошими серверными адаптерами от интел можно элементарно прокачать 2 гигабита с ipfw натом и думинетом. Полинг вам не нужен. Нужно рыть в сторону отложенных прерываний.

Re: FreeBSD 8.1 Загрузка 15% на прерываниях

Добавлено: 2011-02-27 10:16:33
mmvds
LMik писал(а):Может быть конечно не в тему... но как у вас получилось 2*4 = 16 ядер. Без гипертрединга не обошлось, и сейчас у вас упор приходится 2 раза на пол ядра.

На сервере такого класса с хорошими серверными адаптерами от интел можно элементарно прокачать 2 гигабита с ipfw натом и думинетом. Полинг вам не нужен. Нужно рыть в сторону отложенных прерываний.
2*4 * 2 потока, загрузка сейчас 25% всего процессора, т.е. 2 ядра или *2 = 4 CPU
С отложенными прерываниями результат в начале темы.
Про полинг уже писал, что толку 0.
С NAT'ом серых ip на белый? Пользователей с тарифами до 5Мбит/сек? О_о Сильно сомневаюсь.
Если есть реальный пример, как "элементарно" прокачать до 2-х гигабит, буду рад посмотреть.