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

FreBSD 9.1 и высокая загрузка шейпера Неправильно режет скорость

Доброго дня, коллеги.

 

Есть проблемы с аномально высокой загрузкой данного сервера, который используется как шейпер.

С данными показателями у сервера ЛА>10, ошибок на интерфейсах нет и он не может адекватно нарезать скорости клиентам.

Например, на тарифе 80МБт реально получаемая клиентом скорость примерно 25МБт

 

Что можете посоветовать по "пациенту" ?

 

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

 

 

[root@router /etc]# uname -a
FreeBSD router 9.1-STABLE FreeBSD 9.1-STABLE #1 r251806M: Tue Jun 18 13:03:53 EEST 2013     root@softrouter:/usr/obj/usr/src/sys/ROUTER  amd64


[root@router /etc]# sysctl hw.model
hw.model: Intel(R) Xeon(R) CPU           X5680  @ 3.33GHz

[root@router /etc]# top -SHPI
last pid: 54434;  load averages:  9.32, 10.07, 10.49             up 53+16:59:01  23:30:10
204 processes: 23 running, 138 sleeping, 43 waiting
CPU 0:   0.0% user,  0.0% nice, 20.9% system, 58.7% interrupt, 20.5% idle
CPU 1:   0.0% user,  0.0% nice,  0.0% system, 70.9% interrupt, 29.1% idle
CPU 2:   0.0% user,  0.0% nice,  0.0% system, 69.3% interrupt, 30.7% idle
CPU 3:   0.0% user,  0.0% nice,  0.0% system, 58.3% interrupt, 41.7% idle
CPU 4:   0.0% user,  0.0% nice,  0.0% system, 66.9% interrupt, 33.1% idle
CPU 5:   0.0% user,  0.0% nice,  0.0% system, 65.0% interrupt, 35.0% idle
CPU 6:   0.0% user,  0.0% nice,  0.0% system, 74.8% interrupt, 25.2% idle
CPU 7:   0.0% user,  0.0% nice,  0.4% system, 79.9% interrupt, 19.7% idle
CPU 8:   6.3% user,  0.0% nice,  5.1% system,  0.0% interrupt, 88.6% idle
CPU 9:   1.6% user,  0.0% nice,  3.9% system,  0.0% interrupt, 94.5% idle
CPU 10:  0.8% user,  0.0% nice,  7.1% system,  2.8% interrupt, 89.4% idle
CPU 11:  9.1% user,  0.0% nice,  2.0% system,  2.8% interrupt, 86.2% idle
Mem: 175M Active, 4102M Inact, 1065M Wired, 1230M Buf, 6449M Free
Swap: 1024M Total, 1024M Free

gate_22102013_2339.txt

Edited by Elisium

Share this post


Link to post
Share on other sites

net.isr.bindthreads: 1

net.isr.maxthreads: 64

net.isr.dispatch: deferred

 

NetFlow IPv4 cache - отключить

Ещё желательно на HPET таймеры перейти, если есть а остальные отключить.

Share this post


Link to post
Share on other sites

Первое пробовал - эффекта не заметил.

Но поставлю еще раз - мало ли =)

п.с. Выставлял вот так

#net.isr.numthreads=12

#net.isr.bindthreads=1

#net.isr.maxthreads=12

#net.isr.dispatch=deferred

 

 

Второе: с шейпера экспортится нетфлов. При его отключении нагрузка ощутимо падает. Но пока выключить его нет возможности.

 

По таймерам:

Сейчас стоит kern.eventtimer.timer: LAPIC

Остальные (HPET и RTC) показывают (судя по сисцтл) меньшую точность.

Edited by Elisium

Share this post


Link to post
Share on other sites
net.isr.maxthreads

Ставится в лоадере, система сама уменьшает его до количества процов.

 

Второе: с шейпера экспортится нетфлов. При его отключении нагрузка ощутимо падает. Но пока выключить его нет возможности. Или имеется ввиду net.inet.netflow_cachesize=0 ?

Тогда тюнить нетграф, а то там ошибок много.

 

По таймерам: Сейчас стоит kern.eventtimer.timer: LAPIC Остальные (HPET и RTC) показывают (судя по сисцтл) меньшую точность.

Зато прерываний как то много от него.

В лоадере

# POWER SAVING: https://wiki.freebsd.org/TuningPowerConsumption

hint.p4tcc.0.disabled="1" # Disable CPU Frequency Thermal Control

hint.acpi_throttle.0.disabled="1" # Disable CPU throtling

hint.hpet.0.legacy_route="1" # HPET will steal IRQ0 of i8254 timer and IRQ8 of RTC

hint.apic.0.clock="0" # Disable local APIC timers

hint.atrtc.0.clock="0" # Disable RTC timer

hint.attimer.0.clock=0 # Disable AT timer

 

Только если HPET в системе нет то оно не загрузится :)

Share this post


Link to post
Share on other sites

По поводу net.isr.numthreads=1 (дефолт) - есть ли смысл его менять ?

Дето тут же на Наге читал, что нужно выставлять по кол-ву процов.

 

"Тюнить нетграф" - выставлен буфер NetFlow IPv4 cache в 524288 путем изменением исходников.

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

Как еще его можно тюнить ?

 

Зато прерываний как то много от него.

Хм... А где это видно ?

Вроде по 10К на очередь сетевки и 1К на ядро норма.

Или я не о том ?

Share this post


Link to post
Share on other sites
По поводу net.isr.numthreads=1 (дефолт) - есть ли смысл его менять ? Дето тут же на Наге читал, что нужно выставлять по кол-ву процов.

поставьте махтреадс=128 (или любое число больше процов) в лоадер и оно само проставит колличество процов туда и в нумтреадс тоже.

Ещё есть крутилка с фастфорвадингом, и правила в ipfw по отимизировать как то и вроде всё что я знаю из того что влияет на загрузку.

 

"Тюнить нетграф" - выставлен буфер NetFlow IPv4 cache в 524288 путем изменением исходников.

Вообще я про

# NetGraph

net.graph.maxalloc="65535" # Maximum number of non-data queue items to allocate / limit the damage of a leak

net.graph.maxdata="65535" # Maximum number of data queue items to allocate / limit the damage of a DoS

в лоадере, но действительно, не ваш случай, у вас там видно лимит в 524291, вот его ещё увеличить либо посмотреть на код, и подумать надо ли.

 

 

Хм... А где это видно ? Вроде по 10К на очередь сетевки и 1К на ядро норма. Или я не о том ?

vmstat -i

cpu0:timer 5225059319 1125

cpu5:timer 5224985142 1125

cpu11:timer 5043936872 1086

cpu4:timer 5224984378 1125

cpu10:timer 5039893778 1086

cpu1:timer 5224987774 1125

cpu8:timer 5028529588 1083

cpu2:timer 5224985184 1125

cpu6:timer 5224890204 1125

cpu3:timer 5225007766 1125

cpu9:timer 5033193913 1084

cpu7:timer 5224897428 1125

 

в systat -vm тоже видно.

Share this post


Link to post
Share on other sites

Выставил.

Ночью перегружу, завтра отпишусь.

Share this post


Link to post
Share on other sites

Перегрузил.

 

vmstat -I

 

interrupt                          total       rate
irq0: hpet0:t0                    507070       1630
irq9: acpi0                            1          0
irq16: uhci3 uhci4*                   29          0
irq18: atapci0                     14593         46
irq19: uhci0 uhci1*                   29          0
irq266: ix0:que 0                2710736       8716
irq267: ix0:que 1                3519245      11315
irq268: ix0:que 2                2599066       8357
irq269: ix0:que 3                2235942       7189
irq270: ix0:que 4                2800578       9005
irq271: ix0:que 5                3312546      10651
irq272: ix0:que 6                2332010       7498
irq273: ix0:que 7                2661291       8557
irq274: ix0:link                       1          0
irq275: ix1:que 0                1983657       6378
irq276: ix1:que 1                2131004       6852
irq277: ix1:que 2                2024627       6510
irq278: ix1:que 3                2079221       6685
irq279: ix1:que 4                2183279       7020
irq280: ix1:que 5                2080351       6689
irq281: ix1:que 6                1998859       6427
irq282: ix1:que 7                1767743       5684
irq283: ix1:link                       1          0
Total                           38941879     125215

 

 

sysctl net.isr

 

net.isr.numthreads: 12
net.isr.maxprot: 16
net.isr.defaultqlimit: 4096
net.isr.maxqlimit: 10240
net.isr.bindthreads: 1
net.isr.maxthreads: 12
net.isr.direct: 0
net.isr.direct_force: 0
net.isr.dispatch: deferred

 

 

top -SHPI

 

last pid: 77868;  load averages:  1.06,  1.07,  0.59              up 0+00:05:24  05:18:2
208 processes: 14 running, 134 sleeping, 60 waiting
CPU 0:   0.0% user,  0.0% nice,  0.0% system,  4.3% interrupt, 95.7% idle
CPU 1:   0.0% user,  0.0% nice,  0.4% system,  4.3% interrupt, 95.3% idle
CPU 2:   0.4% user,  0.0% nice,  0.0% system,  4.7% interrupt, 94.9% idle
CPU 3:   0.0% user,  0.0% nice,  0.8% system,  6.7% interrupt, 92.5% idle
CPU 4:   0.0% user,  0.0% nice,  0.0% system,  5.5% interrupt, 94.5% idle
CPU 5:   0.0% user,  0.0% nice,  0.0% system,  5.5% interrupt, 94.5% idle
CPU 6:   0.4% user,  0.0% nice,  0.4% system,  7.1% interrupt, 92.2% idle
CPU 7:   0.0% user,  0.0% nice,  0.0% system,  2.7% interrupt, 97.3% idle
CPU 8:   0.0% user,  0.0% nice,  0.4% system,  0.0% interrupt, 99.6% idle
CPU 9:   0.0% user,  0.0% nice,  0.8% system,  0.0% interrupt, 99.2% idle
CPU 10: 12.2% user,  0.0% nice,  0.0% system,  0.0% interrupt, 87.8% idle
CPU 11:  0.0% user,  0.0% nice,  1.6% system,  0.0% interrupt, 98.4% idle
Mem: 61M Active, 24M Inact, 317M Wired, 32M Buf, 11G Free
Swap: 1024M Total, 1024M Free

 PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
  11 root       155 ki31     0K   192K CPU9    9   4:51 100.00% idle{idle: cpu9}
  11 root       155 ki31     0K   192K CPU0    0   4:58 99.76% idle{idle: cpu0}
  11 root       155 ki31     0K   192K CPU2    2   4:58 99.76% idle{idle: cpu2}
  11 root       155 ki31     0K   192K CPU3    3   4:59 99.27% idle{idle: cpu3}
  11 root       155 ki31     0K   192K CPU8    8   4:51 99.27% idle{idle: cpu8}
  11 root       155 ki31     0K   192K CPU11  11   4:53 98.78% idle{idle: cpu11}
  11 root       155 ki31     0K   192K CPU4    4   4:57 98.68% idle{idle: cpu4}
  11 root       155 ki31     0K   192K CPU1    1   4:57 98.49% idle{idle: cpu1}
  11 root       155 ki31     0K   192K RUN     7   4:56 98.39% idle{idle: cpu7}
  11 root       155 ki31     0K   192K CPU5    5   4:56 98.10% idle{idle: cpu5}
  11 root       155 ki31     0K   192K CPU6    6   4:55 96.58% idle{idle: cpu6}
  11 root       155 ki31     0K   192K CPU10  10   4:51 94.19% idle{idle: cpu10}
1465 root        20  -15 76420K 28896K nanslp 11   0:38  5.76% perl5.14.4
1462 root        20    0 60012K 12416K nanslp  3   0:34  2.88% perl5.14.4
  12 root       -92    -     0K   976K WAIT    1   0:09  2.49% intr{irq267: ix0:que }
  12 root       -92    -     0K   976K WAIT    5   0:09  2.49% intr{irq271: ix0:que }
  12 root       -92    -     0K   976K WAIT    7   0:10  2.39% intr{irq273: ix0:que }
  12 root       -92    -     0K   976K WAIT    4   0:08  2.39% intr{irq279: ix1:que }
  12 root       -92    -     0K   976K CPU5    5   0:08  2.29% intr{irq280: ix1:que }
  12 root       -92    -     0K   976K WAIT    6   0:09  2.10% intr{irq281: ix1:que }
  12 root       -92    -     0K   976K WAIT    4   0:08  1.95% intr{irq270: ix0:que }
  12 root       -92    -     0K   976K WAIT    6   0:08  1.76% intr{irq272: ix0:que }
  12 root       -92    -     0K   976K WAIT    2   0:07  1.76% intr{irq268: ix0:que }
  12 root       -92    -     0K   976K WAIT    7   0:07  1.76% intr{irq282: ix1:que }
  12 root       -92    -     0K   976K WAIT    0   0:06  1.76% intr{irq266: ix0:que }
  12 root       -92    -     0K   976K WAIT    1   0:07  1.66% intr{irq276: ix1:que }
  12 root       -92    -     0K   976K WAIT    3   0:07  1.66% intr{irq278: ix1:que }
  12 root       -92    -     0K   976K WAIT    0   0:05  1.66% intr{irq275: ix1:que }
  12 root       -92    -     0K   976K WAIT    3   0:06  1.56% intr{irq269: ix0:que }
  12 root       -92    -     0K   976K WAIT    2   0:07  1.46% intr{irq277: ix1:que }

 

 

Нагрузки сейчас почти нет, смотреть пока нечего.

 

п.с. Таймер выставил HPET

Edited by Elisium

Share this post


Link to post
Share on other sites

Собственно, вот нынешнее состояние:

п.с. тихий ужас....

 

top -SHPI

 

last pid: 32450;  load averages: 13.46, 13.53, 13.11              up 0+15:59:51  21:12:50
216 processes: 25 running, 142 sleeping, 49 waiting
CPU 0:   0.0% user,  0.0% nice,  8.7% system, 75.6% interrupt, 15.7% idle
CPU 1:   0.0% user,  0.0% nice,  0.0% system, 86.6% interrupt, 13.4% idle
CPU 2:   0.0% user,  0.0% nice,  0.0% system, 71.3% interrupt, 28.7% idle
CPU 3:   0.0% user,  0.0% nice,  0.0% system, 73.6% interrupt, 26.4% idle
CPU 4:   0.0% user,  0.0% nice,  0.0% system, 78.7% interrupt, 21.3% idle
CPU 5:   0.0% user,  0.0% nice,  0.0% system, 74.0% interrupt, 26.0% idle
CPU 6:   0.0% user,  0.0% nice,  0.0% system, 84.6% interrupt, 15.4% idle
CPU 7:   0.0% user,  0.0% nice,  0.0% system, 88.6% interrupt, 11.4% idle
CPU 8:   2.0% user,  0.0% nice,  3.9% system,  0.0% interrupt, 94.1% idle
CPU 9:   2.0% user,  0.0% nice,  3.5% system,  0.0% interrupt, 94.5% idle
CPU 10:  2.4% user,  0.0% nice,  3.1% system,  5.9% interrupt, 88.6% idle
CPU 11:  1.6% user,  0.0% nice,  3.5% system,  0.0% interrupt, 94.9% idle
Mem: 68M Active, 28M Inact, 451M Wired, 50M Buf, 11G Free
Swap: 1024M Total, 1024M Free

 PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
  11 root       155 ki31     0K   192K RUN    10 874:27 98.00% idle{idle: cpu10}
  11 root       155 ki31     0K   192K CPU11  11 874:08 96.00% idle{idle: cpu11}
  11 root       155 ki31     0K   192K CPU9    9 873:14 92.19% idle{idle: cpu9}
  11 root       155 ki31     0K   192K CPU8    8 873:15 91.70% idle{idle: cpu8}
  12 root       -92    -     0K   976K WAIT    7 241:08 53.76% intr{irq282: ix1:que }
  12 root       -92    -     0K   976K RUN     6 237:47 51.56% intr{irq281: ix1:que }
  12 root       -92    -     0K   976K CPU1    1 199:58 47.07% intr{irq276: ix1:que }
  12 root       -92    -     0K   976K RUN     0 198:20 46.88% intr{irq275: ix1:que }
  12 root       -92    -     0K   976K RUN     3 199:18 45.56% intr{irq278: ix1:que }
  12 root       -92    -     0K   976K WAIT    2 203:06 44.68% intr{irq277: ix1:que }
  12 root       -92    -     0K   976K CPU5    5 201:35 43.90% intr{irq280: ix1:que }
  12 root       -92    -     0K   976K WAIT    4 199:03 42.97% intr{irq279: ix1:que }
  12 root       -92    -     0K   976K WAIT    7 177:13 39.45% intr{irq273: ix0:que }
  12 root       -92    -     0K   976K RUN     0 158:25 34.67% intr{irq266: ix0:que }
  12 root       -92    -     0K   976K RUN     1 163:39 34.08% intr{irq267: ix0:que }
  12 root       -92    -     0K   976K CPU6    6 181:44 32.47% intr{irq272: ix0:que }
  12 root       -92    -     0K   976K CPU3    3 160:30 31.88% intr{irq269: ix0:que }
  12 root       -92    -     0K   976K WAIT    5 159:57 31.40% intr{irq271: ix0:que }
  12 root       -92    -     0K   976K CPU2    2 160:29 30.57% intr{irq268: ix0:que }
  12 root       -92    -     0K   976K CPU4    4 159:39 30.57% intr{irq270: ix0:que }
  11 root       155 ki31     0K   192K RUN     4 584:52 29.79% idle{idle: cpu4}
  11 root       155 ki31     0K   192K RUN     5 580:14 27.88% idle{idle: cpu5}
  11 root       155 ki31     0K   192K RUN     2 580:18 27.49% idle{idle: cpu2}
  11 root       155 ki31     0K   192K RUN     3 583:56 25.20% idle{idle: cpu3}
  11 root       155 ki31     0K   192K RUN     1 580:17 21.39% idle{idle: cpu1}
  11 root       155 ki31     0K   192K RUN     0 557:14 18.55% idle{idle: cpu0}
  11 root       155 ki31     0K   192K RUN     6 520:48 14.16% idle{idle: cpu6}
  11 root       155 ki31     0K   192K RUN     7 522:35  8.79% idle{idle: cpu7}
1465 root        20  -15 76420K 29324K nanslp 10  57:55  5.18% perl5.14.4
  12 root       -60    -     0K   976K WAIT    2  29:00  4.98% intr{swi4: clock}
1462 root        22    0 60012K 12588K sbwait  9 100:43  4.79% perl5.14.4

 

 

 

vmstat -z

 

[root@router /]# vmstat -z
ITEM                   SIZE  LIMIT     USED     FREE      REQ FAIL SLEEP
...
NetFlow IPv4 cache:      88, 1048582,  573907,   23377,943456662,   0,   0
NetFlow IPv6 cache:     128, 1048582,       0,       0,       0,   0,   0

 

 

 

vmstat -i

 

[root@router /]# vmstat -i
interrupt                          total       rate
irq0: hpet0:t0                  64946101       1128
irq9: acpi0                            1          0
irq16: uhci3 uhci4*                   29          0
irq18: atapci0                     96613          1
irq19: uhci0 uhci1*                   29          0
irq266: ix0:que 0              646811676      11240
irq267: ix0:que 1              637166007      11073
irq268: ix0:que 2              630388778      10955
irq269: ix0:que 3              620951022      10791
irq270: ix0:que 4              638953940      11104
irq271: ix0:que 5              645744077      11222
irq272: ix0:que 6              586050393      10184
irq273: ix0:que 7              587270231      10206
irq274: ix0:link                       1          0
irq275: ix1:que 0              665288570      11561
irq276: ix1:que 1              641306496      11145
irq277: ix1:que 2              646880123      11242
irq278: ix1:que 3              639931448      11121
irq279: ix1:que 4              642242035      11161
irq280: ix1:que 5              645626462      11220
irq281: ix1:que 6              593175443      10308
irq282: ix1:que 7              595406712      10347
irq283: ix1:link                       1          0
Total                        10128236188     176017

 

 

sysctl net.isr

 

[root@router /]# sysctl net.isr
net.isr.numthreads: 12
net.isr.maxprot: 16
net.isr.defaultqlimit: 4096
net.isr.maxqlimit: 10240
net.isr.bindthreads: 1
net.isr.maxthreads: 12
net.isr.direct: 0
net.isr.direct_force: 0
net.isr.dispatch: deferred

 

 

netstat -w1

 

[root@router /]# netstat -w1
           input        (Total)           output
  packets  errs idrops      bytes    packets  errs      bytes colls
  1225130     0     0  940778855    1208223     0  927625066     0
  1119113     0     0  863390823    1122723     0  429818426     0
  1153175     0     0  888382902    1141793     0  920127821     0
  1152994     0     0  891305057    1141661     0  902229198     0
  1192655     0     0  916494180    1181517     0  922589104     0

 

 

systat -if

 

  
[root@router /]# systat -if
                   /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
    Load Average   |||||||||||||||||||||||||||||||||||||||||||||||||| 12.9

     Interface           Traffic               Peak                Total
      vlan1211  in    323.839 MB/s        323.839 MB/s            8.777 TB
                out   130.211 MB/s        133.840 MB/s            4.850 TB

       vlan333  in    133.698 MB/s        136.253 MB/s            4.930 TB
                out   320.890 MB/s        320.890 MB/s            8.721 TB

           lo0  in      0.000 KB/s          0.000 KB/s            6.297 MB
                out     0.000 KB/s          0.000 KB/s            6.297 MB

           ix1  in    330.433 MB/s        330.433 MB/s            8.904 TB
                out   141.288 MB/s        142.073 MB/s            4.924 TB

           ix0  in    136.183 MB/s        138.272 MB/s            4.998 TB
                out   347.493 MB/s        347.493 MB/s            8.897 TB

 

Share this post


Link to post
Share on other sites

net.isr.dispatch крутится на лету.

net.inet.ip.fastforwarding=0 ?

Гипертрединг включён?

Share this post


Link to post
Share on other sites

net.inet.ip.fastforwarding=1

net.inet.ip.dummynet.io_fast=1

 

HT выключен - установлено два проца.

 

Вернул все как было, ибо нагрузка заметно выросла.

Увеличил обьем кеша для нетфлоу - поставил 1М. Ошибок в его сторону не наблюдается.

 

Поправили шейпер.

Было

        #unlim 50 day
       ${fwcmd} pipe 500 config mask dst-ip 0xffffffff bw 50Mbit/s queue 10 gred 0.002/15/30/0.1
       ${fwcmd} pipe 501 config mask src-ip 0xffffffff bw 50Mbit/s queue 10 gred 0.002/15/30/0.1

 

Стало

        #unlim 50 day
       ${fwcmd} pipe 500 config mask dst-ip 0xffffffff bw 50Mbit/s queue 100
       ${fwcmd} pipe 501 config mask src-ip 0xffffffff bw 50Mbit/s queue 100

 

Тарифная скорость вернулась +- в норму

Но так и остался открытым вопрос, что еще можно сделать для снижения нагрузки.

Ликвидировать пользователей не предлагать =)

Share this post


Link to post
Share on other sites

Нет.

Принимаем\отдаем дефолты. Иксы рулятся ранее на циске.

Share this post


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

=0 чтобы по netisr разложило. (в добавок к тем настройкам что выше)

 

 

Вернул все как было, ибо нагрузка заметно выросла.

Ещё димминет нужно прибить к опред ядру. Скрипт где то на форуме есть.

Share this post


Link to post
Share on other sites

Ещё димминет нужно прибить к опред ядру. Скрипт где то на форуме есть.

 

Не просто определенному, а именно дамминет нужно прибивать к 0. На всех других оно жреть ЦПУ..

Share this post


Link to post
Share on other sites

Дамминет прибит к 0му ядру.

Однако, в час пик его загрузка поднимается до 5%.

 

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

Share this post


Link to post
Share on other sites

Мне всегда думалось, что дамминет на 0ом ядре просто не учитывается в общей нагрузке :)

Share this post


Link to post
Share on other sites

А что мешает просто раскидать прерывания на все 12 ядер вместо текущих 8?

Share this post


Link to post
Share on other sites

А что мешает просто раскидать прерывания на все 12 ядер вместо текущих 8?

Ну, формально, ничего =)

Просто сетевух две - у каждой по 8 очередей. А процов 12.

Как бы, красиво не прибить.

 

п.с. Пробовал. Видимого эффекта не обнаружено.

Share this post


Link to post
Share on other sites

Собственно, вот:

При включенном deferred и fastforwarding=0

top -SHPI

 

last pid: 35044;  load averages:  6.32,  6.53,  6.85              up 0+22:02:23  01:11:46
216 processes: 19 running, 141 sleeping, 56 waiting
CPU 0:   0.0% user,  0.0% nice,  5.9% system, 60.2% interrupt, 33.9% idle
CPU 1:   0.8% user,  0.0% nice,  0.0% system, 58.3% interrupt, 40.9% idle
CPU 2:   0.0% user,  0.0% nice,  0.0% system, 59.4% interrupt, 40.6% idle
CPU 3:   0.0% user,  0.0% nice,  0.0% system, 54.7% interrupt, 45.3% idle
CPU 4:   0.4% user,  0.0% nice,  0.0% system, 59.1% interrupt, 40.6% idle
CPU 5:   0.4% user,  0.0% nice,  0.8% system, 62.6% interrupt, 36.2% idle
CPU 6:   0.4% user,  0.0% nice,  0.0% system, 65.4% interrupt, 34.3% idle
CPU 7:   0.0% user,  0.0% nice,  0.0% system, 61.0% interrupt, 39.0% idle
CPU 8:   2.8% user,  0.0% nice,  2.8% system,  5.1% interrupt, 89.4% idle
CPU 9:   5.1% user,  0.0% nice,  2.8% system,  5.1% interrupt, 87.0% idle
CPU 10:  2.4% user,  0.0% nice,  1.6% system,  9.1% interrupt, 87.0% idle
CPU 11:  0.8% user,  0.0% nice,  1.6% system,  9.4% interrupt, 88.2% idle
Mem: 62M Active, 23M Inact, 1008M Wired, 1078M Buf, 10G Free
Swap: 1024M Total, 1024M Free

 PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
  11 root       155 ki31     0K   192K CPU8    8 935:48 84.96% idle{idle: cpu8}
  11 root       155 ki31     0K   192K CPU9    9 941:06 81.40% idle{idle: cpu9}
  11 root       155 ki31     0K   192K RUN    10 683:30 81.15% idle{idle: cpu10}
  11 root       155 ki31     0K   192K RUN    11 685:01 80.86% idle{idle: cpu11}
  12 root       -72    -     0K   976K WAIT    7 203:36 57.67% intr{swi1: netisr 7}
  12 root       -72    -     0K   976K CPU6    6 205:03 56.88% intr{swi1: netisr 6}
  12 root       -72    -     0K   976K WAIT    4 173:33 54.05% intr{swi1: netisr 4}
  12 root       -72    -     0K   976K CPU1    1 168:55 52.20% intr{swi1: netisr 1}
  12 root       -72    -     0K   976K WAIT    2 172:14 51.86% intr{swi1: netisr 2}
  12 root       -72    -     0K   976K CPU3    3 170:35 51.76% intr{swi1: netisr 3}
  12 root       -72    -     0K   976K WAIT    5 177:23 51.27% intr{swi1: netisr 5}
  12 root       -72    -     0K   976K CPU0    0 170:25 50.88% intr{swi1: netisr 0}
  11 root       155 ki31     0K   192K CPU2    2 830:03 45.07% idle{idle: cpu2}
  11 root       155 ki31     0K   192K RUN     0 636:34 44.97% idle{idle: cpu0}
  11 root       155 ki31     0K   192K RUN     3 827:47 44.38% idle{idle: cpu3}
  11 root       155 ki31     0K   192K RUN     1 832:21 43.36% idle{idle: cpu1}
  11 root       155 ki31     0K   192K RUN     5 618:48 42.58% idle{idle: cpu5}
  11 root       155 ki31     0K   192K RUN     6 739:43 38.57% idle{idle: cpu6}
  11 root       155 ki31     0K   192K CPU7    7 748:04 38.38% idle{idle: cpu7}
  11 root       155 ki31     0K   192K CPU4    4 627:12 37.79% idle{idle: cpu4}
1460 root        33    0 60012K 12816K sbwait  9 154:34 17.77% perl5.14.4
1463 root        52  -15 76420K 29160K nanslp  8  87:18 12.99% perl5.14.4
  12 root       -92    -     0K   976K WAIT    9 313:02  5.66% intr{irq278: ix1:que }
  12 root       -92    -     0K   976K WAIT    7 308:44  4.98% intr{irq276: ix1:que }
  12 root       -92    -     0K   976K WAIT    8 319:11  4.69% intr{irq277: ix1:que }
  12 root       -92    -     0K   976K WAIT   10 310:01  4.59% intr{irq279: ix1:que }
  12 root       -92    -     0K   976K WAIT    4 256:07  4.30% intr{irq272: ix0:que }
  12 root       -92    -     0K   976K WAIT   11 313:43  4.20% intr{irq280: ix1:que }
  12 root       -92    -     0K   976K CPU6    6 313:15  4.05% intr{irq275: ix1:que }
  12 root       -92    -     0K   976K WAIT   11 310:23  3.96% intr{irq282: ix1:que }
  12 root       -92    -     0K   976K WAIT    5 256:53  3.96% intr{irq273: ix0:que }
  12 root       -92    -     0K   976K WAIT   10 316:09  3.86% intr{irq281: ix1:que }

 

sysctl net.isr

 

net.isr.numthreads: 12
net.isr.maxprot: 16
net.isr.defaultqlimit: 4096
net.isr.maxqlimit: 10240
net.isr.bindthreads: 1
net.isr.maxthreads: 12
net.isr.direct: 0
net.isr.direct_force: 0
net.isr.dispatch: deferred

 

 

.. и при direct и ff=1

top -SHPI

 

last pid: 45070;  load averages:  5.09,  6.06,  6.58              up 0+22:06:47  01:16:10
216 processes: 17 running, 141 sleeping, 58 waiting
CPU 0:   2.4% user,  0.0% nice, 20.0% system, 22.0% interrupt, 55.7% idle
CPU 1:   2.0% user,  0.0% nice,  1.2% system, 25.1% interrupt, 71.8% idle
CPU 2:   2.4% user,  0.0% nice,  0.8% system, 25.1% interrupt, 71.8% idle
CPU 3:   3.1% user,  0.0% nice,  3.9% system, 19.2% interrupt, 73.7% idle
CPU 4:   2.4% user,  0.0% nice,  0.4% system, 43.5% interrupt, 53.7% idle
CPU 5:   1.2% user,  0.0% nice,  0.8% system, 45.1% interrupt, 52.9% idle
CPU 6:   2.0% user,  0.0% nice,  2.0% system, 26.7% interrupt, 69.4% idle
CPU 7:   2.4% user,  0.0% nice,  0.0% system, 31.4% interrupt, 66.3% idle
CPU 8:   1.6% user,  0.0% nice,  1.6% system, 19.6% interrupt, 77.3% idle
CPU 9:   2.4% user,  0.0% nice,  2.4% system, 21.6% interrupt, 73.7% idle
CPU 10:  1.2% user,  0.0% nice,  1.2% system, 54.5% interrupt, 43.1% idle
CPU 11:  0.8% user,  0.0% nice,  0.8% system, 51.8% interrupt, 46.7% idle
Mem: 62M Active, 23M Inact, 1009M Wired, 1079M Buf, 10G Free
Swap: 1024M Total, 1024M Free

 PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
  11 root       155 ki31     0K   192K RUN     3 830:11 80.96% idle{idle: cpu3}
  11 root       155 ki31     0K   192K CPU1    1 834:42 78.76% idle{idle: cpu1}
  11 root       155 ki31     0K   192K RUN     0 638:27 77.78% idle{idle: cpu0}
  11 root       155 ki31     0K   192K CPU9    9 944:37 77.29% idle{idle: cpu9}
  11 root       155 ki31     0K   192K RUN     2 832:19 74.07% idle{idle: cpu2}
  11 root       155 ki31     0K   192K CPU8    8 939:17 71.00% idle{idle: cpu8}
  11 root       155 ki31     0K   192K CPU7    7 750:02 70.36% idle{idle: cpu7}
  11 root       155 ki31     0K   192K CPU6    6 741:43 68.36% idle{idle: cpu6}
  11 root       155 ki31     0K   192K CPU5    5 620:49 56.69% idle{idle: cpu5}
  11 root       155 ki31     0K   192K RUN     4 629:07 55.86% idle{idle: cpu4}
  11 root       155 ki31     0K   192K RUN    11 688:10 48.29% idle{idle: cpu11}
  11 root       155 ki31     0K   192K RUN    10 686:39 45.90% idle{idle: cpu10}
  12 root       -92    -     0K   976K WAIT   10 316:40 29.20% intr{irq281: ix1:que }
  12 root       -92    -     0K   976K WAIT   10 310:32 28.96% intr{irq279: ix1:que }
  12 root       -92    -     0K   976K WAIT   11 310:56 28.76% intr{irq282: ix1:que }
  12 root       -92    -     0K   976K WAIT    8 319:43 28.66% intr{irq277: ix1:que }
  12 root       -92    -     0K   976K CPU6    6 313:45 28.56% intr{irq275: ix1:que }
  12 root       -92    -     0K   976K WAIT    7 309:15 26.46% intr{irq276: ix1:que }
  12 root       -92    -     0K   976K WAIT   11 314:11 25.20% intr{irq280: ix1:que }
  12 root       -92    -     0K   976K WAIT    4 256:35 24.46% intr{irq272: ix0:que }
  12 root       -92    -     0K   976K WAIT    9 313:32 24.17% intr{irq278: ix1:que }
  12 root       -92    -     0K   976K WAIT    0 248:02 23.88% intr{irq266: ix0:que }
  12 root       -92    -     0K   976K CPU4    4 249:03 22.85% intr{irq270: ix0:que }
  12 root       -92    -     0K   976K WAIT    1 250:32 22.17% intr{irq267: ix0:que }
  12 root       -92    -     0K   976K WAIT    2 249:04 21.19% intr{irq268: ix0:que }
  12 root       -92    -     0K   976K WAIT    5 252:39 21.09% intr{irq271: ix0:que }
  12 root       -92    -     0K   976K WAIT    3 253:40 21.00% intr{irq269: ix0:que }
  12 root       -92    -     0K   976K CPU5    5 257:20 20.36% intr{irq273: ix0:que }
1460 root        29    0 60012K 12816K CPU5    5 155:11 11.18% perl5.14.4
1463 root        20  -15 76420K 29160K nanslp  8  87:39  7.28% perl5.14.4
  12 root       -60    -     0K   976K WAIT    5  43:57  2.88% intr{swi4: clock}

 

sysctl net.isr

 

net.isr.numthreads: 12
net.isr.maxprot: 16
net.isr.defaultqlimit: 4096
net.isr.maxqlimit: 10240
net.isr.bindthreads: 1
net.isr.maxthreads: 12
net.isr.direct: 1
net.isr.direct_force: 1
net.isr.dispatch: direct

 

 

pps примерно 800К. Час пик уже прошел =(

Прерывания от сетевух привязаны так:

Шесть первых прерываний первой сетевухи на ядра 0-5, 7е и 8е - на ядра 4,5

Шесть первых прерываний второй сетевухи на ядра 6-11, 7е и 8е - на ядра 10,11.

 

Разницу в нагрузке на сервер не особо заметно.

 

Более того, не понимаю, почему в первом случае указано net.isr.numthreads: 12, но реально в топе видно только 8 работающих.

Соответственно, загружены только первые 8 ядер.

В чем подвох ?

Share this post


Link to post
Share on other sites

У вас там перл в топе, это какая-то магия сетевая? Или так просто диском шуршит? :)

Share this post


Link to post
Share on other sites

Это тест на внимательность =)

п.с. скрипт в фоне, рулит правилами в фаерволе.

Share this post


Link to post
Share on other sites

Ну т.е. вас не смущает что скрипт в фоне имеет два процесса с нехилой нагрузкой? :)

 

Просто был у меня в практике случай, когда довелось повстречать самописные грабли. Там машинка тоже страдала под трафиком, в основном под действием самописной хренотени типа "сниффер реальнага времени". Отключение этой байды просто преображало шлюз :)

 

Я просто не очень в курсе, может если дергать каждые 10 наносекунд ipfw, все вообще умрет в локе. У вас там не так?

Edited by DVM-Avgoor

Share this post


Link to post
Share on other sites

Скорее всего нужно обновляться и если не поможет писать в список рассылки, потому что последние 4 ядра не догружаются.

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

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