Jump to content
Калькуляторы

FreeBSD 7.3 + mpd + ng_queue

Добрый день.

 

Есть сервера FreeBSD 7.3-STABLE PPPoE на MPD. При достижении ~700 коннектов. Начинается рост процесса ng_queue, в это же время наблюдается увелечение времени задержеки и потеря пакетов.

При:

dev.em.2.rx_int_delay: 0
dev.em.2.tx_int_delay: 0
dev.em.2.rx_abs_int_delay: 600
dev.em.2.tx_abs_int_delay: 600

Деградация, примерно минута-две.

dev.em.2.rx_int_delay: 600
dev.em.2.tx_int_delay: 600
dev.em.2.rx_abs_int_delay: 1000
dev.em.2.tx_abs_int_delay: 1000

Происходит буквально на две три секунды.

 

Но, если тюнить параметр: net.graph.maxdata=4096, то ng_queue начинает рости до 100% и деградация уже продолжается продолжительное время (10-15 минут), тогда тюнинг таймаутов не помогает.

 

Если выставить net.graph.maxdata по дефолту (512), то проблемы возникают на секунды.

 

В остальное время процессы ng_queue[x] висят с 0% загрузкой. И проблем не наблюдаются.

 

Проблема:

  107 root      43    -     0K     8K CPU2    2 144.7H 26.27% em2_rx0_1
1570 root      43    -     0K     8K WAIT   10  15:06 26.17% em2_rx0_4
  106 root      43    -     0K     8K CPU8    8 144.7H 25.88% em2_rx0_0
1571 root      43    -     0K     8K CPU7    7  15:07 25.78% em2_rx0_5
  275 root      43    -     0K     8K WAIT    1 144.6H 25.59% em2_rx0_3
  274 root      43    -     0K     8K WAIT   15 144.7H 25.20% em2_rx0_2
   96 root      43    -     0K     8K WAIT    4 108.9H 22.36% em0_rx0_0
  260 root      43    -     0K     8K WAIT    4 108.9H 22.27% em0_rx0_2
  261 root      43    -     0K     8K CPU9    9 108.9H 21.97% em0_rx0_3
1563 root      43    -     0K     8K CPU3    3  12:10 21.88% em0_rx0_5
   97 root      43    -     0K     8K WAIT    5 108.9H 21.19% em0_rx0_1
1562 root      43    -     0K     8K WAIT    6  12:12 21.09% em0_rx0_4
    9 root     -68    -     0K     8K sleep   6  26:24  2.37% ng_queue7
2917 root      44    0  5868K  3576K select  0   2:22  1.07% zebra
  104 root      16    -     0K     8K WAIT   11 520:13  0.10% swi16: em2_tx
  115 root     -68    -     0K     8K -       0 146.9H  0.00% dummynet
   28 root     -32    -     0K     8K WAIT   13 549:13  0.00% swi4: clock
34601 root      44    0 80360K 31400K select  0 496:53  0.00% mpd5
   94 root      16    -     0K     8K WAIT    2 217:16  0.00% swi16: em0_tx

 

Без проблем:

    5 root     -68    -     0K     8K sleep   6  28:42  0.00% ng_queue3
    2 root     -68    -     0K     8K sleep   4  27:19  0.00% ng_queue0
   33 root     -68    -     0K     8K sleep   8  26:53  0.00% ng_queue11
   37 root     -68    -     0K     8K sleep   6  26:51  0.00% ng_queue15
    9 root     -68    -     0K     8K sleep   0  26:24  0.00% ng_queue7
    7 root     -68    -     0K     8K sleep   2  26:03  0.00% ng_queue5
   32 root     -68    -     0K     8K sleep   6  25:56  0.00% ng_queue10
34544 root      44    0  3216K  1172K select  2  24:07  0.00% syslogd
    4 root     -68    -     0K     8K sleep   2  22:52  0.00% ng_queue2
   30 root     -68    -     0K     8K sleep   2  22:50  0.00% ng_queue8
    3 root     -68    -     0K     8K sleep   8  22:11  0.00% ng_queue1
    8 root     -68    -     0K     8K sleep   8  22:04  0.00% ng_queue6
   36 root     -68    -     0K     8K sleep  10  21:00  0.00% ng_queue14
   34 root     -68    -     0K     8K sleep   6  20:32  0.00% ng_queue12
    6 root     -68    -     0K     8K sleep   6  20:13  0.00% ng_queue4
   35 root     -68    -     0K     8K sleep   2  18:13  0.00% ng_queue13
   31 root     -68    -     0K     8K sleep   2  18:11  0.00% ng_queue9

 

Ната нет. Есть MPD 5.5 (netflow) и так же повторяется на MPD 4, ipfw dummynet. Трафика 250/250.

 

loader.conf:

autoboot_delay=3
loader_logo=beastie
vm.kmem_size=1G
hw.em.rxd=4096
hw.em.txd=4096
net.graph.maxalloc=32768
# net.graph.maxdata=65536
kern.maxusers=2048
kern.ipc.maxpipekva=62000000

 

sysctl.conf

kern.ipc.maxsockbuf=4097152
net.graph.recvspace=1024000
net.graph.maxdgram=1024000
kern.maxfiles=204800
kern.maxfilesperproc=200000
net.inet.icmp.drop_redirect=1
net.inet.ip.redirect=0
net.inet.tcp.blackhole=2
net.inet.tcp.icmp_may_rst=0
net.inet.udp.blackhole=1
net.inet.ip.dummynet.io_fast=1
net.inet.ip.intr_queue_maxlen=512
net.inet.ip.dummynet.hash_size=1024
net.inet.ip.fastforwarding=1
net.isr.direct=1
dev.em.0.rx_kthreads=6
dev.em.0.rx_int_delay=600
dev.em.0.tx_int_delay=600
dev.em.0.rx_abs_int_delay=1000
dev.em.0.tx_abs_int_delay=1000
dev.em.2.rx_kthreads=6
dev.em.1.rx_int_delay=600
dev.em.1.tx_int_delay=600
dev.em.1.rx_abs_int_delay=1000
dev.em.1.tx_abs_int_delay=1000

 

Помогите пожалуйста найти проблему.

Share this post


Link to post
Share on other sites
net.inet.ip.fastforwarding=1

net.isr.direct=1

оба в ноль попробуйте поставить

Share this post


Link to post
Share on other sites
net.inet.ip.fastforwarding=1

net.isr.direct=1

оба в ноль попробуйте поставить

Выставил. Процесс [swi1: net] поднялся в 100% и ему стало заметно хуже. Потеря пакетов, не получение полосы в dummynet'е и так далее.

Share this post


Link to post
Share on other sites

carleone

Пробуйте или обновляться до RELENG8, либо попробуйте патч под RELENG7 для netisr, его уже выкладывали на форуме.

Share this post


Link to post
Share on other sites
carleone

Пробуйте или обновляться до RELENG8, либо попробуйте патч под RELENG7 для netisr, его уже выкладывали на форуме.

Я конечно попробую. Но на 8 у меня ng_queue при большой нагрузке сразу уходил в 100%. netisr, могу попробовать но стоит ли заходить с этой стороны.

Share this post


Link to post
Share on other sites

Насколько большая нагрузка была?

Share this post


Link to post
Share on other sites

Насколько большая нагрузка была?

in/out 360/350, 750 сессий

Share this post


Link to post
Share on other sites

У меня все на одном серваке, и биллинг, и bgp, и шейпер и mpd5. 900 сессий, траффик 450 на 450, загруже на 50%. Все процессы разбежались по ядрам, каждый процесс не более 15% загружает.

Железо SR1600UR + 5570 один стоит. Второй сокет пуст. Сетевая двухголовая встроенная, но igb (82575).

 

last pid: 43958;  load averages:  3.09,  2.95,  2.83                   up 14+23:43:21  18:54:51
231 processes: 15 running, 180 sleeping, 36 waiting
CPU:  3.3% user,  0.0% nice, 28.3% system,  8.4% interrupt, 60.0% idle
Mem: 1036M Active, 3163M Inact, 1174M Wired, 111M Cache, 617M Buf, 353M Free
Swap: 2048M Total, 1196K Used, 2047M Free

  PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
   11 root       171 ki31     0K   128K RUN     3 279.5H 74.37% {idle: cpu3}
   11 root       171 ki31     0K   128K CPU1    1 276.9H 73.39% {idle: cpu1}
   11 root       171 ki31     0K   128K CPU2    2 270.1H 71.58% {idle: cpu2}
   11 root       171 ki31     0K   128K RUN     0 268.8H 68.90% {idle: cpu0}
   11 root       171 ki31     0K   128K RUN     5 252.7H 66.06% {idle: cpu5}
   11 root       171 ki31     0K   128K RUN     4 247.6H 62.79% {idle: cpu4}
   11 root       171 ki31     0K   128K CPU7    7 248.2H 61.96% {idle: cpu7}
   11 root       171 ki31     0K   128K CPU6    6 244.2H 60.69% {idle: cpu6}
3280 root       106    0   153M   138M CPU5    5 713:46 44.78% zebra
    0 root       -68    0     0K   240K CPU4    4  67.0H 27.10% {igb0 que}
    0 root       -68    0     0K   240K -       6  34.9H 16.55% {igb1 que}
    0 root       -68    0     0K   240K -       7  47.8H 14.45% {igb1 que}
   12 root       -68    -     0K   576K WAIT    1  30.0H 12.89% {irq257: igb0:que}
   13 root        50    -     0K   128K CPU7    7  28.5H 12.16% {ng_queue2}
   13 root        50    -     0K   128K sleep   2  28.5H 11.96% {ng_queue0}
   13 root        50    -     0K   128K sleep   6  28.5H 11.77% {ng_queue4}
   13 root        50    -     0K   128K sleep   2  28.5H 11.18% {ng_queue7}
   13 root        50    -     0K   128K sleep   5  28.5H 11.08% {ng_queue3}
   13 root        50    -     0K   128K sleep   7  28.5H 10.99% {ng_queue5}
   13 root        51    -     0K   128K sleep   1  28.5H 10.89% {ng_queue1}
   13 root        49    -     0K   128K RUN     4  28.6H 10.50% {ng_queue6}
   12 root       -68    -     0K   576K WAIT    3  23.4H  9.28% {irq264: igb1:que}
   12 root       -68    -     0K   576K WAIT    1  19.6H  7.96% {irq262: igb1:que}
   12 root       -68    -     0K   576K WAIT    3  19.5H  7.76% {irq259: igb0:que}
   12 root       -68    -     0K   576K WAIT    0  23.3H  7.57% {irq256: igb0:que}
   12 root       -68    -     0K   576K WAIT    2  22.3H  7.28% {irq258: igb0:que}
    0 root       -68    0     0K   240K -       0  21.2H  7.08% {igb1 que}
   12 root       -68    -     0K   576K WAIT    0  22.2H  6.88% {irq261: igb1:que}
    0 root       -68    0     0K   240K -       6  20.6H  6.88% {igb0 que}
   12 root       -68    -     0K   576K WAIT    2  19.7H  6.79% {irq263: igb1:que}
5371 root        47    0   104M 55256K CPU3    3 672:25  4.30% {mpd5}
   12 root       -32    -     0K   576K WAIT    5 562:50  2.39% {swi4: clock}
8727 root        44    0 36932K 29284K select  1  41:33  0.10% bsnmpd
3286 root        44    0   215M   201M select  1 102:20  0.00% bgpd
    0 root       -68    0     0K   240K -       3  37:51  0.00% {dummynet}
   14 root        44    -     0K    16K -       6  34:34  0.00% yarrow
5237 bind        44    0   167M   154M kqread  7  31:13  0.00% {named}
5237 bind        44    0   167M   154M ucond   2  25:38  0.00% {named}
5237 bind        44    0   167M   154M ucond   1  25:37  0.00% {named}
5237 bind        44    0   167M   154M ucond   1  25:37  0.00% {named}
5237 bind        44    0   167M   154M ucond   6  25:36  0.00% {named}
5237 bind        44    0   167M   154M ucond   1  25:35  0.00% {named}
5237 bind        44    0   167M   154M ucond   6  25:33  0.00% {named}
5237 bind        44    0   167M   154M ucond   1  25:32  0.00% {named}
5237 bind        44    0   167M   154M ucond   1  25:28  0.00% {named}
   12 root       -64    -     0K   576K WAIT    3  24:36  0.00% {irq19: uhci0 uhc}
5686 mysql       45    0   557M   454M ucond   4  12:41  0.00% {mysqld}

 

            input        (Total)           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
      325K     0     0       212M       327K     0       214M     0     0 
      320K     0     0       208M       323K     0       210M     0     0 
      328K     0     0       211M       330K     0       213M     0     0

Edited by Hawk128

Share this post


Link to post
Share on other sites
У меня все на одном серваке, и биллинг, и bgp, и шейпер и mpd5. 900 сессий, траффик 450 на 450, загруже на 50%. Все процессы разбежались по ядрам, каждый процесс не более 15% загружает.

Железо SR1600UR + 5570 один стоит. Второй сокет пуст. Сетевая двухголовая встроенная, но igb (82575).

 

last pid: 43958;  load averages:  3.09,  2.95,  2.83                   up 14+23:43:21  18:54:51
231 processes: 15 running, 180 sleeping, 36 waiting
CPU:  3.3% user,  0.0% nice, 28.3% system,  8.4% interrupt, 60.0% idle
Mem: 1036M Active, 3163M Inact, 1174M Wired, 111M Cache, 617M Buf, 353M Free
Swap: 2048M Total, 1196K Used, 2047M Free

  PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
   11 root       171 ki31     0K   128K RUN     3 279.5H 74.37% {idle: cpu3}
   11 root       171 ki31     0K   128K CPU1    1 276.9H 73.39% {idle: cpu1}
   11 root       171 ki31     0K   128K CPU2    2 270.1H 71.58% {idle: cpu2}
   11 root       171 ki31     0K   128K RUN     0 268.8H 68.90% {idle: cpu0}
   11 root       171 ki31     0K   128K RUN     5 252.7H 66.06% {idle: cpu5}
   11 root       171 ki31     0K   128K RUN     4 247.6H 62.79% {idle: cpu4}
   11 root       171 ki31     0K   128K CPU7    7 248.2H 61.96% {idle: cpu7}
   11 root       171 ki31     0K   128K CPU6    6 244.2H 60.69% {idle: cpu6}
3280 root       106    0   153M   138M CPU5    5 713:46 44.78% zebra
    0 root       -68    0     0K   240K CPU4    4  67.0H 27.10% {igb0 que}
    0 root       -68    0     0K   240K -       6  34.9H 16.55% {igb1 que}
    0 root       -68    0     0K   240K -       7  47.8H 14.45% {igb1 que}
   12 root       -68    -     0K   576K WAIT    1  30.0H 12.89% {irq257: igb0:que}
   13 root        50    -     0K   128K CPU7    7  28.5H 12.16% {ng_queue2}
   13 root        50    -     0K   128K sleep   2  28.5H 11.96% {ng_queue0}
   13 root        50    -     0K   128K sleep   6  28.5H 11.77% {ng_queue4}
   13 root        50    -     0K   128K sleep   2  28.5H 11.18% {ng_queue7}
   13 root        50    -     0K   128K sleep   5  28.5H 11.08% {ng_queue3}
   13 root        50    -     0K   128K sleep   7  28.5H 10.99% {ng_queue5}
   13 root        51    -     0K   128K sleep   1  28.5H 10.89% {ng_queue1}
   13 root        49    -     0K   128K RUN     4  28.6H 10.50% {ng_queue6}
   12 root       -68    -     0K   576K WAIT    3  23.4H  9.28% {irq264: igb1:que}
   12 root       -68    -     0K   576K WAIT    1  19.6H  7.96% {irq262: igb1:que}
   12 root       -68    -     0K   576K WAIT    3  19.5H  7.76% {irq259: igb0:que}
   12 root       -68    -     0K   576K WAIT    0  23.3H  7.57% {irq256: igb0:que}
   12 root       -68    -     0K   576K WAIT    2  22.3H  7.28% {irq258: igb0:que}
    0 root       -68    0     0K   240K -       0  21.2H  7.08% {igb1 que}
   12 root       -68    -     0K   576K WAIT    0  22.2H  6.88% {irq261: igb1:que}
    0 root       -68    0     0K   240K -       6  20.6H  6.88% {igb0 que}
   12 root       -68    -     0K   576K WAIT    2  19.7H  6.79% {irq263: igb1:que}
5371 root        47    0   104M 55256K CPU3    3 672:25  4.30% {mpd5}
   12 root       -32    -     0K   576K WAIT    5 562:50  2.39% {swi4: clock}
8727 root        44    0 36932K 29284K select  1  41:33  0.10% bsnmpd
3286 root        44    0   215M   201M select  1 102:20  0.00% bgpd
    0 root       -68    0     0K   240K -       3  37:51  0.00% {dummynet}
   14 root        44    -     0K    16K -       6  34:34  0.00% yarrow
5237 bind        44    0   167M   154M kqread  7  31:13  0.00% {named}
5237 bind        44    0   167M   154M ucond   2  25:38  0.00% {named}
5237 bind        44    0   167M   154M ucond   1  25:37  0.00% {named}
5237 bind        44    0   167M   154M ucond   1  25:37  0.00% {named}
5237 bind        44    0   167M   154M ucond   6  25:36  0.00% {named}
5237 bind        44    0   167M   154M ucond   1  25:35  0.00% {named}
5237 bind        44    0   167M   154M ucond   6  25:33  0.00% {named}
5237 bind        44    0   167M   154M ucond   1  25:32  0.00% {named}
5237 bind        44    0   167M   154M ucond   1  25:28  0.00% {named}
   12 root       -64    -     0K   576K WAIT    3  24:36  0.00% {irq19: uhci0 uhc}
5686 mysql       45    0   557M   454M ucond   4  12:41  0.00% {mysqld}

 

            input        (Total)           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
      325K     0     0       212M       327K     0       214M     0     0 
      320K     0     0       208M       323K     0       210M     0     0 
      328K     0     0       211M       330K     0       213M     0     0

Я вижу что ng_queue0 занимает 11% и проблем нету. Как же так... В моем случае хватает 2-3%, когда возникают проблемы. Когда проблем нету процессы ng_queue по нулям.

Забыл добавить что пакеты сервер не теряет. Теряют хосты подключеные к нему.

 

carleone, попробуйте вообще убрать тюнинг полностью.
Хм, не думал об этом. Тоже попробую. Хотя без тюнинга, будут проблемы по созданию большого количества ng нод (mpd).

Share this post


Link to post
Share on other sites

У меня почти без тюнинга. Нод просто туча. 900 в онлайне. На каждого соединение (pptp или pppoe), ng_car, ng_netflow. Так что получается весьма много.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this