LINUX.ORG.RU
ФорумAdmin

ifconfig показывает dropped:484 в чем проблема?


0

0

роутер работает на линухе,

если посмотреть ifconfig то там будет
dropped:484 -- для внешнего интерфейса в WAN.

о чем это говорит?

диаграмму управление трафом можно посмотреть:
http://lilijas.dzti.edu.lv/shaper-dia/isp-eth0-shaper.png

=======================
ifconfig выдает:
=======================
eth0 Link encap:Ethernet HWaddr 00:1B:21:04:FC:55
inet addr: хх.хх.хх.198 Bcast:хх.хх.хх.199 Mask:255.255.255.252
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:284898262 errors:0 dropped:484 overruns:0 frame:0
TX packets:282537624 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3000
RX bytes:1411784301 (1.3 GiB) TX bytes:1575553047 (1.4 GiB)
Base address:0x9000 Memory:f6020000-f6040000

=======================
lspci выдает:
=======================
02:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)
03:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)

Драйвера карточек собраны с поддержкой NAPI

ЗЫ
как мне кажется это началось с поднятием скорости для местного трафа,
модем прова в WAN 100мбит, перед получением ошибок была выставлена сумарная скорость 98мбит

Re: ifconfig показывает dropped:484 в чем проблема?

Говорит это о том, что процессора не хватает периваривать этот поток пакетов. Драйвер сетевки пакеты от сетевки забирает, но ядро не успевает их обработать (прогнать по цепочкам iptables, смаршрутизировать). Поэтому эти пакеты идут в drop. Обычно это происходит при большом количестве маленьких пакетов.

Еще есть overruns --- это когда сетевка не успевает принимать пакеты, а точнее когда буфер сетевки заполнен (ядро не забирает из нее пакеты).

Пока кол-во dropped много меньше общего кол-ва пакетов, на это можно забить. Сетевые пакеты дропают все, и сервера, и свичи, и маршрутизаторы.

mky ★★★★★ ()

Re: ifconfig показывает dropped:484 в чем проблема?

CPU как показывает htop 
Не бывает загружен более чем на 25%

поэтому предположение о том что проц не успевает неверное (ниже приведены хар-ки проца)


команда cat /proc/net/softnet_stat выадет 
00197d13 00000000 00000013 00000000 00000000 00000000 00000000 00000000 00000000
27e3c1e7 00000000 0000015b 00000000 00000000 00000000 00000000 00000000 00000000

указывает что обработка пакетов с устройства занимала слишком много времени 347 раз

и еще хотелосьбы немного понять почему так неравномерно используются процы: 
cat /proc/interrupts 
           CPU0       CPU1
  0:        350          0   IO-APIC-edge      timer
  1:          0          2   IO-APIC-edge      i8042
  2:          0          0    XT-PIC-XT        cascade
  8:          0          1   IO-APIC-edge      rtc
 10:          0          0   IO-APIC-fasteoi   ehci_hcd:usb1, ohci_hcd:usb2
 11:        274      63243   IO-APIC-fasteoi   libata, libata
 14:          0         60   IO-APIC-edge      libata
 15:          0          0   IO-APIC-fasteoi   libata
220:     588176  349093355   PCI-MSI-edge      eth1
221:     474481  165669254   PCI-MSI-edge      eth0
NMI:          0          0
LOC:   53318161   53318072
ERR:          1
MIS:          0


мощный комп след характеристики:
# cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 67
model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 6000+
stepping        : 3
cpu MHz         : 3013.695
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8legacy ts fid vid ttp tm stc
bogomips        : 6030.92
clflush size    : 64

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 67
model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 6000+
stepping        : 3
cpu MHz         : 3013.695
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8legacy ts fid vid ttp tm stc
bogomips        : 6026.53
clflush size    : 64


andyS1976 ()

Re: ifconfig показывает dropped:484 в чем проблема?

Конечно пока можно забить на то что пакетиков мало дропается, однако тогда можно подойти к выводу, что для Линуха роутер на 1ГБит будет недосягаемым пределом, хотя как бы железо (проц) при этом не до конца загружен (в моем случае как правило загружен только один проц из двух)

Статистику по пакетам можно посмотреть http://lilijas.dzti.edu.lv/statistic.html (начиная с 23-00 поднял скорость, что привело за ночь к dropped 484 )

разве там так много пакетов чтобы проц не успел прогнать ее по правилам iptables, для определения Местный/Зарубежный траф использовал ipset так и есть в хэш таблицу занесено порядка 185 записей

andyS1976 ()
Ответ на: Re: ifconfig показывает dropped:484 в чем проблема? от andyS1976

Re: ifconfig показывает dropped:484 в чем проблема?

ethtool -S eth1 показывает: rx_no_buffer_count: 109 rx_missed_errors: 250

Вот нашел пояснение этим параметрам

rx_missed_errors indicates frames that were dropped due to the e1000 adapter's fifo getting full and over flowing.

rx_no_buffer_count indicates that the driver didn't return buffers to the hardware soon enough, but the hardware was able to store the packet (at the time of reception) in the fifo to try again.

Both these indicate to me that there is something wrong with interrupts. Maybe interrupt sharing

andyS1976 ()
Ответ на: Re: ifconfig показывает dropped:484 в чем проблема? от andyS1976

Re: ifconfig показывает dropped:484 в чем проблема?

Один мой знакомый сильно не любит e1000, это его личное мнение, но он считает, что уж слишко много драйвер этой сетевки переписывается и все время правятся баги...

У вас карточка на какой скорости сейчас слинкована? на 100 Мбит или на 1 Гбит?

По поводу /proc/interrupts, вроде бы та 32 битные счетчики, и на какой круг они у вас уже пошли не известно.

>однако тогда можно подойти к выводу, что для Линуха роутер на 1ГБит будет недосягаемым пределом, хотя как бы железо (проц) при этом не до конца загружен (в моем случае как правило загружен только один проц из двух)

Для того, чтобы дропались пакеты не нужна большая загрузка проца, достаточно пачки маленьких пакетов, происходит переполнение очереди пакетов (она достаточно маленькая netdev_max_backlog = 1000) (файл net/core/dev.c).

mky ★★★★★ ()

Re: ifconfig показывает dropped:484 в чем проблема?

Zdrastvujte mky!

> для того, чтобы дропались пакеты не нужна большая загрузка проца
разве 6728.0 pps  это так много пакетов?

покопавшись в инете, я нашел кажется то о чем Вы говорите:

rx_missed_errors indicates frames that were dropped due to the e1000 
adapter's fifo getting full and over flowing

adapter's fifo это где находится, его длинну можно увеличить?

может adapter's fifo это вот это:
# ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX:             4096
RX Mini:        0
RX Jumbo:       0
TX:             4096
Current hardware settings:
RX:             256
RX Mini:        0
RX Jumbo:       0
TX:             256


А вот во воводу netdev_max_backlog  

У меня NAPI # ethtool -i eth1
driver: e1000
version: 7.3.20-k2-NAPI
firmware-version: 5.11-10
bus-info: 0000:03:00.0

Поэтому из http://www.opennet.ru/docs/RUS/GigabitEthernet/

Backlog: длина очереди для входящих пакетов. Выставить значение можно 
через /proc/sys/net/core/netdev_max_backlog и/или через sysctl -w 
net.core.netdev_max_backlog. Значение по умолчанию 300. Минимальное 
значение должно быть равным количеству буферов на сетевом интерфейсе, 
что бы не вызвать переполнение. Рекомендуемое значение от 3000. Не 
используется при NAPI. 


# ethtool -d eth0
MAC Registers
-------------
0x00000: CTRL (Device control register)  0x080C0241
      Endian mode (buffers):             little
      Link reset:                        normal
      Set link up:                       1
      Invert Loss-Of-Signal:             no
      Receive flow control:              enabled
      Transmit flow control:             disabled
      VLAN mode:                         disabled
      Auto speed detect:                 disabled
      Speed select:                      1000Mb/s
      Force speed:                       no
      Force duplex:                      no
0x00008: STATUS (Device status register) 0x00080343
      Duplex:                            full
      Link up:                           link config
      TBI mode:                          disabled
      Link speed:                        100Mb/s
      Bus type:                          PCI
      Bus speed:                         33MHz
      Bus width:                         32-bit
0x00100: RCTL (Receive control register) 0x00008002
      Receiver:                          enabled
      Store bad packets:                 disabled
      Unicast promiscuous:               disabled
      Multicast promiscuous:             disabled
      Long packet:                       disabled
      Descriptor minimum threshold size: 1/2
      Broadcast accept mode:             accept
      VLAN filter:                       disabled
      Cononical form indicator:          disabled
      Discard pause frames:              filtered
      Pass MAC control frames:           don't pass
      Receive buffer size:               2048
0x02808: RDLEN (Receive desc length)     0x00001000
0x02810: RDH   (Receive desc head)       0x000000CF
0x02818: RDT   (Receive desc tail)       0x000000CD
0x02820: RDTR  (Receive delay timer)     0x00000000
0x00400: TCTL (Transmit ctrl register)   0x3103F0FA
      Transmitter:                       enabled
      Pad short packets:                 enabled
      Software XOFF Transmission:        disabled
      Re-transmit on late collision:     enabled
0x03808: TDLEN (Transmit desc length)    0x00001000
0x03810: TDH   (Transmit desc head)      0x00000092
0x03818: TDT   (Transmit desc tail)      0x00000092
0x03820: TIDV  (Transmit delay timer)    0x00000008
PHY type:                                IGP2


andyS1976 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.