Большая загрузка swi и em1

sopov
Сообщения: 610
Зарегистрирован: Вс апр 02, 2006 7:13 pm

Re: Большая загрузка swi и em1

Сообщение sopov »

Тогда, если закрыть глаза на совместимость софт\ядро, получается виноват адаптер em1. С поллингом процессор не прерывается на обработку каждого сетевого пакета, а обрабатывает их раз в какое-то время (HZ=1000). Все это время пакеты накапливаются в буфере адаптера. Вот с ним видимо и проблема - судя по увеличивающимся ошибкам. Там у вас, случайно, шина pci не разогнана? Попробуйте сменить адаптер на любой, даже rl.

star
Сообщения: 211
Зарегистрирован: Ср окт 11, 2006 4:27 pm
Контактная информация:

Re: Большая загрузка swi и em1

Сообщение star »

sopov писал(а):Тогда, если закрыть глаза на совместимость софт\ядро, получается виноват адаптер em1. С поллингом процессор не прерывается на обработку каждого сетевого пакета, а обрабатывает их раз в какое-то время (HZ=1000). Все это время пакеты накапливаются в буфере адаптера. Вот с ним видимо и проблема - судя по увеличивающимся ошибкам. Там у вас, случайно, шина pci не разогнана? Попробуйте сменить адаптер на любой, даже rl.
Склоняюсь к тому-же, на материнской плате имеется встроенная сетвая re, но freebsd 6.4 ee к сожалению не видит.
Шину PCI не разгонял. Еще склоняюсь к тому, что может не хватать таки шины PCI на два девайса, т.к. шина таки запаралелена (оба девайса на pci4). Собственно слотов pci всего два ;). Сегодня вечерком постараюсь выделить время и обновить драйвера на встроенной сетевой карте.
http://v-lan.com.ua Выделенные линии в Боярке

star
Сообщения: 211
Зарегистрирован: Ср окт 11, 2006 4:27 pm
Контактная информация:

Re: Большая загрузка swi и em1

Сообщение star »

Значит так, хочется отчитаться о проделанной работе:
1. Замена сетевых Intel-овых PCI сетевых на одну DUAL не дало никакого резульата.
2. Убрать нагрузку с swi1: net помогло

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

 sysctl net.isr.direct=1
В FreeBSD7.2 этот параметр стоит по умолчанию, в 6.4 - нет. Нагрузка на swi1: net упала до 0.00% :), потери при netstat -w1 -iem1 упали раза в два-три, сразу стало видно что нехватает мощности процессора.
3.На следующем этапе параллельно поднять второй сервер но уже с MPD5, посмотрим как там будет все жить. Потом плавно (ночью) пеоеведу всех пользователей ;).
П.С. забыл выложить текущие показатели топа и нетстата

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

#top -SIP
last pid: 94266;  load averages:  7.90, 10.17, 10.29                                                                up 0+08:45:10  23:19:27
473 processes: 6 running, 432 sleeping, 14 waiting, 21 lock
CPU 0:  7.6% user,  0.0% nice, 55.7% system, 24.1% interrupt, 12.7% idle
CPU 1: 15.0% user,  0.0% nice, 55.0% system,  6.3% interrupt, 23.8% idle
CPU 2:  3.8% user,  0.0% nice, 25.3% system, 45.6% interrupt, 25.3% idle
CPU 3:  3.8% user,  0.0% nice, 26.6% system, 58.2% interrupt, 11.4% idle
Mem: 331M Active, 154M Inact, 161M Wired, 152K Cache, 214M Buf, 3189M Free
Swap: 4096M Total, 4096M Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
   23 root        1 -68 -187     0K    16K CPU3   3 409:14 68.41% irq257: em1
   22 root        1 -68 -187     0K    16K WAIT   2  68:15 26.27% irq256: em0
   12 root        1 171   52     0K    16K CPU1   1 188:58 11.23% idle: cpu1
   11 root        1 171   52     0K    16K CPU2   2 127:20 11.23% idle: cpu2
   13 root        1 171   52     0K    16K RUN    0 124:11  6.74% idle: cpu0
76985 root        1 118    0 13976K  3528K *Giant 1   9:53  5.22% ppp
   10 root        1 171   52     0K    16K RUN    3 119:44  3.71% idle: cpu3
83080 root        1  78    0 13980K  3504K *Giant 1   2:58  0.73% ppp

user# netstat -w1 -h -Iem1
            input          (em1)           output
   packets  errs      bytes    packets  errs      bytes colls
      8.9K     0       6.5M       8.7K     0       3.8M     0
      9.9K     0       7.8M       8.8K     0       3.2M     0
      9.1K     0       7.1M       8.3K     0       3.5M     0
      8.4K     0       5.8M       8.7K     0       4.0M     0
      9.2K     0       7.0M       8.8K     0       3.9M     0
      8.8K     0       6.8M       8.3K     0       3.9M     0
      9.6K     0       7.2M       8.9K     0       3.4M     0
      9.5K     0       7.5M       8.6K     0       3.6M     0
      9.6K     0       7.5M       8.6K     0       3.1M     0
      8.5K    10       6.5M       8.1K     0       3.3M     0
^C
user# wq
VPN users ONLINE: 180
user#
Собственно ошибки стремятся к нулю.

Дальше будет видно.
http://v-lan.com.ua Выделенные линии в Боярке

NiTr0
Сообщения: 767
Зарегистрирован: Пт фев 08, 2008 4:46 pm

Re: Большая загрузка swi и em1

Сообщение NiTr0 »

Квад с трудом переваривает 180 юзверей? :shock: Что-то тут не то...
У нас (правда на линуксе) дуалкор, довольно чахленький (атлон 5000+) начинал пухнуть при 500-600+ коннектах... При попытках поюзать тиминг (и таким образом хоть как-то заюзать оба ядра под прерывания, т.к. все по обработке пакета вертится на ядре, которое обслуживает прерывание) - более 700 коннектов вытягивал, но уже с дропом пакетов.
Внешний траффик - около 200 мбит в каждую из сторон...

sopov
Сообщения: 610
Зарегистрирован: Вс апр 02, 2006 7:13 pm

Re: Большая загрузка swi и em1

Сообщение sopov »

Вот и я говорю, всеравно не есть гуд. Текущее железо, при оптимальной настройке, способно переварить порядка 1G трафика и х.з. сколько ppp трубок - думаю больше 1000 точно... Всеравно большая нагрузка по прирываниям. У меня когдато был exppp, так вот на ~450 ppp у машинки наступал колапс и она ребутилась от чрезмерной нагрузки. После замены всего этого хозяйства на MPD5+NGCAR, тоже железо вобще без нагрузки держит ~800 ppp и около 100 мбит трафа.

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

Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (3000.37-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf65  Stepping = 5
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0xe59d<SSE3,RSVD2,MON,DS_CPL,EST,TM2,CNXT-ID,CX16,xTPR,PDCM>
  AMD Features=0x20000000<LM>
  AMD Features2=0x1<LAHF>
  Logical CPUs per core: 2
real memory  = 2138701824 (2039 MB)
avail memory = 2087890944 (1991 MB)

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

last pid: 11223;  load averages:  0.03,  0.03,  0.00                                                                                up 86+05:30:30  17:45:52
71 processes:  2 running, 50 sleeping, 19 waiting
CPU:  0.4% user,  0.0% nice,  0.4% system,  0.0% interrupt, 99.3% idle
Mem: 47M Active, 312M Inact, 172M Wired, 112M Buf, 1463M Free
Swap: 4000M Total, 4000M Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE    TIME   WCPU COMMAND
   10 root        1 171   52     0K     8K RUN    1745.3 97.61% idle
   13 root        1 -44 -163     0K     8K WAIT   248.7H  0.00% swi1: net
   31 root        1 -68    0     0K     8K -       25.5H  0.00% dummynet
   11 root        1 -32 -151     0K     8K WAIT    22.7H  0.00% swi4: clock sio
   14 root        1 -16    0     0K     8K -      274:48  0.00% yarrow
 1053 root        1  96    0 43552K 28048K select 148:22  0.00% mpd5
   39 root        1  20    0     0K     8K syncer 111:41  0.00% syncer
  927 root        1  96    0  1440K  1100K select  38:25  0.00% syslogd
   35 root        1 171   52     0K     8K pgzero  12:41  0.00% pagezero
 1001 bind        1  96    0 10940K 10100K select   9:50  0.00% named
    3 root        1  -8    0     0K     8K -        8:50  0.00% g_up
    4 root        1  -8    0     0K     8K -        7:16  0.00% g_down
   26 root        1 -64 -183     0K     8K WAIT     5:20  0.00% irq17: atapci1
    2 root        1  -8    0     0K     8K -        3:53  0.00% g_event
   41 root        1 -16    0     0K     8K -        3:15  0.00% schedcpu
   32 root        1  -8    0     0K     8K m:w1     1:50  0.00% g_mirror gm0
   40 root        1 -16    0     0K     8K sdflus   1:03  0.00% softdepflush
  846 root        1  96    0   528K   380K select   0:54  0.00% devd
   37 root        1 -16    0     0K     8K psleep   0:32  0.00% bufdaemon
   38 root        1  -4    0     0K     8K vlruwt   0:30  0.00% vnlru
 1230 root        1  96    0  1516K  1228K select   0:27  0.00% inetd
 1151 root        1   4    0  1612K  1296K kqread   0:20  0.00% master
90805 root        1  96    0  3256K  2844K select   0:16  0.00% ospfd
 1179 root        1   8    0  1432K  1136K nanslp   0:15  0.00% cron

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

nas1# ifconfig | grep ng | wc -l
     765  

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

 netstat -w1 -h -Iem0
            input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
      13.9K     0       3.0M       14.2K     0       9.0M     0
      13.8K     0       3.0M       14.1K     0       9.0M     0
      14.1K     0       2.7M       14.1K     0       9.1M     0
      13.8K     0       2.8M       14.1K     0       9.9M     0
      13.7K     0       2.5M       14.0K     0       8.8M     0
      13.9K     0       2.8M       14.2K     0       9.2M     0
      13.8K     0       2.6M       14.2K     0       8.1M     0
      14.2K     0       2.7M       14.6K     0       8.6M     0
      13.9K     0       2.8M       14.2K     0       8.1M     0
      13.6K     0       2.6M       13.8K     0       9.6M     0
      13.6K     0       2.5M       13.8K     0       8.7M     0
      13.6K     0       2.4M       13.8K     0       8.7M     0
      13.6K     0       2.8M       13.9K     0       8.7M     0
      13.5K     0       3.1M       13.8K     0       8.6M     0
      13.6K     0       2.9M       13.7K     0       9.5M     0
      14.1K     0       3.0M       14.1K     0       8.9M     0
      14.1K     0       3.0M       14.2K     0       9.0M     0
      13.9K     0       3.2M       14.1K     0       8.8M     0
      14.0K     0       3.1M       14.2K     0       8.2M     0
      13.5K     0       3.1M       13.7K     0       8.6M     0

star
Сообщения: 211
Зарегистрирован: Ср окт 11, 2006 4:27 pm
Контактная информация:

Re: Большая загрузка swi и em1

Сообщение star »

Спешу отписаться о найденном тонком месте ;)
Виной всему не exppp и не сетевая карта ;). А бональный IPFW, точнее правила которые, ему скормлены.
Итого: При подключении по ppp (exppp + poptop) Я делю трафик на мир и украину (1670 подсетей).
Не смотря на то, что я использую таблицы в фаерволе, все равно мощности машины не хватает на быструю обработку.

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

user# netstat -hw1 -Iem1
            input          (em1)           output
   packets  errs      bytes    packets  errs      bytes colls
      8.7K     0       8.0M       7.6K     0       2.9M     0
      9.5K     4       8.4M       8.2K     0       2.5M     0
      8.8K     0       7.8M       7.7K     0       3.1M     0
      9.1K     0       8.0M       7.9K     0       2.9M     0
      9.2K     0       8.0M       7.9K     0       2.8M     0
      8.8K     2       7.8M       7.7K     0       3.2M     0
      9.3K     0       9.2M       7.7K     0       2.6M     0
      9.3K     0       8.7M       7.7K     0       2.8M     0
^C
user# wq
VPN users ONLINE: 177
А теперь добавляем в фаервол правило ipfw add 10 allow all from any to any
смотрим что полуилось

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

user# netstat -hw1 -Iem1
            input          (em1)           output
   packets  errs      bytes    packets  errs      bytes colls
       15K     0        14M        12K     0       6.1M     0
       13K     0        12M        11K     0       5.3M     0
       15K     0        13M        12K     0       6.4M     0
       15K     0        14M        12K     0       6.0M     0
       13K     0        12M        11K     0       5.6M     0
       12K     0        11M       9.9K     0       5.0M     0
       13K     0        12M        11K     0       4.7M     0
       12K     0        11M        10K     0       4.8M     0
       12K     0        12M       9.7K     0       3.8M     0
       12K     0        12M        10K     0       4.5M     0
       13K     0        12M        11K     0       5.0M     0
       13K     0        12M        11K     0       5.2M     0
       12K     0        11M        10K     0       4.9M     0
       11K     0       9.2M       9.8K     0       4.9M     0
       15K     0        16M        12K     0       4.4M     0
       16K     0        17M        12K     0       4.6M     0
^C
ну и нагрузка на систему :)

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

user# top -SIP
last pid: 48953;  load averages:  2.10,  3.07,  4.26                                      up 1+23:55:40  14:29:57
437 processes: 5 running, 410 sleeping, 15 waiting, 7 lock
CPU 0: 17.0% user,  0.0% nice, 18.4% system,  0.0% interrupt, 64.6% idle
CPU 1:  6.3% user,  0.0% nice, 20.4% system,  0.5% interrupt, 72.8% idle
CPU 2: 14.2% user,  0.0% nice, 19.1% system, 12.7% interrupt, 53.9% idle
CPU 3: 16.1% user,  0.0% nice, 19.0% system, 12.2% interrupt, 52.7% idle
Mem: 391M Active, 692M Inact, 160M Wired, 232K Cache, 214M Buf, 2494M Free
Swap: 4096M Total, 4096M Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
   12 root        1 171   52     0K    16K CPU1   1  26.3H 66.89% idle: cpu1
   13 root        1 171   52     0K    16K RUN    0  22.1H 52.59% idle: cpu0
   10 root        1 171   52     0K    16K CPU3   3  19.9H 42.09% idle: cpu3
   11 root        1 171   52     0K    16K CPU2   2  21.6H 39.06% idle: cpu2
   22 root        1 -68 -187     0K    16K WAIT   2 531:23  6.74% irq256: em0
48455 root        1  81    0 13888K  3512K select 3   1:05  3.71% ppp
39296 root        1  79    0 13508K  3084K *Giant 2   6:04  0.73% ppp
В общем ситуация думаю ясна. Решил следующим образом подкорректировал скрипт linkupdown, на предмет создания правил подсчета трафика относительно UAIX (В принципе они там вообще не нужны т.к. считает их exppp посредством файлов net). Ну и ситуация наладилась.

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

user# netstat -hw1 -Iem1
             input          (em1)           output
   packets  errs      bytes    packets  errs      bytes colls
       18K     0        20M        12K     0       2.3M     0
       14K     0        15M       9.5K     0       1.9M     0
       17K     0        18M        11K     0       2.3M     0
       18K     0        19M        12K     0       2.3M     0
       16K     0        17M        11K     0       2.6M     0
       16K     0        17M        11K     0       2.3M     0
       15K     0        16M        11K     0       2.6M     0
       14K     0        15M        10K     0       2.4M     0
       16K     0        16M        11K     0       2.6M     0
       17K     0        18M        11K     0       2.0M     0
       14K     0        14M        10K     0       2.7M     0
^C
Будем надеяться на лучшее ;) Посмотрим сколько пользователей теперь сможет отработать коробченка ;)
http://v-lan.com.ua Выделенные линии в Боярке

sopov
Сообщения: 610
Зарегистрирован: Вс апр 02, 2006 7:13 pm

Re: Большая загрузка swi и em1

Сообщение sopov »

:) Поэтому ipfw и неподходит для промышленных решений. Для таких задач специально создали универсальную сетевую подсистему netgraph.

Ответить