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

откуда дропы(linux, igb)

Здравствуйте.

На сервере с сетевой картой intel I350 временами появляются дропы.

Ядро 3.4.4. igb из этого же ядра.

модули iptables-а выгрузил. то есть вообще нет фаервола.

шейпер не используется.

на машине много ipip туннелей.

Трафика порядка 300 мегабит через эти туннели бегает.

Стоит два процессора по 4 ядра каждый. Прерывания прибиты к 4-м ядрам второго процессора(5,6,7,8 ядра)

Процессоры нагружены до 10%. 5-6 % среднее.

Дропы видно на вланах(ua0 и mir0) которые висят на eth0.

На самом eth0 счетчик дропов пустой.

В листинге tc -s -d class show dev eth0 видно что все 16150 дропов появились в

class mq :7 root leaf 8007:

Sent 191893634098 bytes 334759662 pkt (dropped 16150, overlimits 0 requeues 17219)

backlog 0b 0p requeues 17219

 

Еще стоит отметить что дропы появляются пачками по 800-900 штук сразу. менее чем за секундую и затем их может не быть пару минут или часов. Но обычно это происходит под вечер

хотя и утром при минимальной нагрузке иногда можно такое наблюдать.

Подскажите куда копать?

ifconfig eth0
eth0      Link encap:Ethernet  HWaddr B4:B5:2F:51:81:88  
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:351283260 errors:0 dropped:0 overruns:0 frame:0
         TX packets:411629004 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:247680948572 (236206.9 Mb)  TX bytes:251889612815 (240220.6 Mb)
         Memory:f7f00000-f8000000 

ifconfig ua0
ua0       Link encap:Ethernet  HWaddr B4:B5:2F:51:81:88  
         inet addr:194.187.111.154  Bcast:0.0.0.0  Mask:255.255.255.248
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:226521597 errors:0 dropped:0 overruns:0 frame:0
         TX packets:305503002 errors:0 dropped:15596 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:113430264010 (108175.5 Mb)  TX bytes:212015923754 (202194.1 Mb)

ifconfig mir0
mir0      Link encap:Ethernet  HWaddr B4:B5:2F:51:81:88  
         inet addr:194.187.111.86  Bcast:0.0.0.0  Mask:255.255.255.252
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:125557916 errors:0 dropped:0 overruns:0 frame:0
         TX packets:107040005 errors:0 dropped:554 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:129929373505 (123910.3 Mb)  TX bytes:40369786122 (38499.6 Mb)

ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: off
generic-receive-offload: off
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: on

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:             512

 ethtool -S eth0
NIC statistics:
    rx_packets: 358883095
    tx_packets: 420788251
    rx_bytes: 255747407782
    tx_bytes: 260665243210
    rx_broadcast: 330
    tx_broadcast: 829
    rx_multicast: 55
    tx_multicast: 0
    multicast: 55
    collisions: 0
    rx_crc_errors: 0
    rx_no_buffer_count: 0
    rx_missed_errors: 0
    tx_aborted_errors: 0
    tx_carrier_errors: 0
    tx_window_errors: 0
    tx_abort_late_coll: 0
    tx_deferred_ok: 0
    tx_single_coll_ok: 0
    tx_multi_coll_ok: 0
    tx_timeout_count: 0
    rx_long_length_errors: 0
    rx_short_length_errors: 0
    rx_align_errors: 0
    tx_tcp_seg_good: 0
    tx_tcp_seg_failed: 0
    rx_flow_control_xon: 0
    rx_flow_control_xoff: 0
    tx_flow_control_xon: 0
    tx_flow_control_xoff: 0
    rx_long_byte_count: 255747407782
    tx_dma_out_of_sync: 0
    tx_smbus: 589
    rx_smbus: 510
    dropped_smbus: 0
    os2bmc_rx_by_bmc: 0
    os2bmc_tx_by_bmc: 0
    os2bmc_tx_by_host: 0
    os2bmc_rx_by_host: 0
    rx_errors: 0
    tx_errors: 0
    tx_dropped: 0
    rx_length_errors: 0
    rx_over_errors: 0
    rx_frame_errors: 0
    rx_fifo_errors: 0
    tx_fifo_errors: 0
    tx_heartbeat_errors: 0
    tx_queue_0_packets: 14719084
    tx_queue_0_bytes: 10824546050
    tx_queue_0_restart: 0
    tx_queue_1_packets: 13286121
    tx_queue_1_bytes: 11583525768
    tx_queue_1_restart: 11
    tx_queue_2_packets: 17070805
    tx_queue_2_bytes: 12992559092
    tx_queue_2_restart: 17
    tx_queue_3_packets: 11044861
    tx_queue_3_bytes: 8530833909
    tx_queue_3_restart: 0
    tx_queue_4_packets: 13440189
    tx_queue_4_bytes: 7774499483
    tx_queue_4_restart: 0
    tx_queue_5_packets: 15117148
    tx_queue_5_bytes: 10991067404
    tx_queue_5_restart: 0
    tx_queue_6_packets: 320917475
    tx_queue_6_bytes: 183759067803
    tx_queue_6_restart: 460
    tx_queue_7_packets: 15191975
    tx_queue_7_bytes: 10726757141
    tx_queue_7_restart: 0
    rx_queue_0_packets: 39605889
    rx_queue_0_bytes: 27756799961
    rx_queue_0_drops: 0
    rx_queue_0_csum_err: 13
    rx_queue_0_alloc_failed: 0
    rx_queue_1_packets: 69847838
    rx_queue_1_bytes: 39263808648
    rx_queue_1_drops: 0
    rx_queue_1_csum_err: 314
    rx_queue_1_alloc_failed: 0
    rx_queue_2_packets: 65240695
    rx_queue_2_bytes: 41449968087
    rx_queue_2_drops: 0
    rx_queue_2_csum_err: 1126
    rx_queue_2_alloc_failed: 0
    rx_queue_3_packets: 79896032
    rx_queue_3_bytes: 39691869490
    rx_queue_3_drops: 0
    rx_queue_3_csum_err: 436
    rx_queue_3_alloc_failed: 0
    rx_queue_4_packets: 21848797
    rx_queue_4_bytes: 24504273513
    rx_queue_4_drops: 0
    rx_queue_4_csum_err: 141
    rx_queue_4_alloc_failed: 0
    rx_queue_5_packets: 22527152
    rx_queue_5_bytes: 24051977662
    rx_queue_5_drops: 0
    rx_queue_5_csum_err: 128
    rx_queue_5_alloc_failed: 0
    rx_queue_6_packets: 29974034
    rx_queue_6_bytes: 26379045357
    rx_queue_6_drops: 0
    rx_queue_6_csum_err: 181
    rx_queue_6_alloc_failed: 0
    rx_queue_7_packets: 29941546
    rx_queue_7_bytes: 29778115006
    rx_queue_7_drops: 0
    rx_queue_7_csum_err: 295
    rx_queue_7_alloc_failed: 0

tc -s -d class show dev eth0
class mq :1 root leaf 8001: 
Sent 11126178051 bytes 15259382 pkt (dropped 0, overlimits 0 requeues 1849) 
backlog 0b 0p requeues 1849 
class mq :2 root leaf 8002: 
Sent 11929333928 bytes 13778066 pkt (dropped 0, overlimits 0 requeues 2067) 
backlog 0b 0p requeues 2067 
class mq :3 root leaf 8003: 
Sent 13350959826 bytes 17670900 pkt (dropped 0, overlimits 0 requeues 2066) 
backlog 0b 0p requeues 2066 
class mq :4 root leaf 8004: 
Sent 8904403623 bytes 11655863 pkt (dropped 0, overlimits 0 requeues 1637) 
backlog 0b 0p requeues 1637 
class mq :5 root leaf 8005: 
Sent 8039122808 bytes 14063407 pkt (dropped 0, overlimits 0 requeues 2026) 
backlog 0b 0p requeues 2026 
class mq :6 root leaf 8006: 
Sent 11326904807 bytes 15670981 pkt (dropped 0, overlimits 0 requeues 2067) 
backlog 0b 0p requeues 2067 
class mq :7 root leaf 8007: 
Sent 191893634098 bytes 334759662 pkt (dropped 16150, overlimits 0 requeues 17219) 
backlog 0b 0p requeues 17219 
class mq :8 root leaf 8008: 
Sent 10958936110 bytes 15678142 pkt (dropped 0, overlimits 0 requeues 2017) 
backlog 0b 0p requeues 2017 
class mq :9 root leaf 8009: 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
class mq :a root leaf 800a: 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
class mq :b root leaf 800b: 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
class mq :c root leaf 800c: 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
class mq :d root leaf 800d: 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
class mq :e root leaf 800e: 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
class mq :f root leaf 800f: 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
class mq :10 root leaf 8010: 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 

tc -s -d qdisc show dev eth0
qdisc mq 0: root 
Sent 273449197500 bytes 448714695 pkt (dropped 16150, overlimits 0 requeues 31851) 
backlog 0b 0p requeues 31851 
qdisc pfifo 8001: parent :1 limit 1000p
Sent 11264615613 bytes 15567928 pkt (dropped 0, overlimits 0 requeues 1881) 
backlog 0b 0p requeues 1881 
qdisc pfifo 8002: parent :2 limit 1000p
Sent 12175067780 bytes 14107362 pkt (dropped 0, overlimits 0 requeues 2135) 
backlog 0b 0p requeues 2135 
qdisc pfifo 8003: parent :3 limit 1000p
Sent 13551756236 bytes 18005277 pkt (dropped 0, overlimits 0 requeues 2125) 
backlog 0b 0p requeues 2125 
qdisc pfifo 8004: parent :4 limit 1000p
Sent 9164753211 bytes 12000404 pkt (dropped 0, overlimits 0 requeues 1699) 
backlog 0b 0p requeues 1699 
qdisc pfifo 8005: parent :5 limit 1000p
Sent 8209574623 bytes 14429458 pkt (dropped 0, overlimits 0 requeues 2072) 
backlog 0b 0p requeues 2072 
qdisc pfifo 8006: parent :6 limit 1000p
Sent 11489840340 bytes 15968982 pkt (dropped 0, overlimits 0 requeues 2116) 
backlog 0b 0p requeues 2116 
qdisc pfifo 8007: parent :7 limit 1000p
Sent 196440382630 bytes 342631098 pkt (dropped 16150, overlimits 0 requeues 17756) 
backlog 0b 0p requeues 17756 
qdisc pfifo 8008: parent :8 limit 1000p
Sent 11153207067 bytes 16004186 pkt (dropped 0, overlimits 0 requeues 2067) 
backlog 0b 0p requeues 2067 
qdisc pfifo 8009: parent :9 limit 1000p
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
qdisc pfifo 800a: parent :a limit 1000p
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
qdisc pfifo 800b: parent :b limit 1000p
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
qdisc pfifo 800c: parent :c limit 1000p
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
qdisc pfifo 800d: parent :d limit 1000p
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
qdisc pfifo 800e: parent :e limit 1000p
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
qdisc pfifo 800f: parent :f limit 1000p
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
qdisc pfifo 8010: parent :10 limit 1000p
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 

Edited by adron2

Share this post


Link to post
Share on other sites

 

Current hardware settings:

RX: 256

TX: 512

- вот это надо увеличить до 2048 или 4096

Share this post


Link to post
Share on other sites

sg и tso тоже нафиг не нужны

 

Чтобы понять причину дропов, нужно отловить момент дропов, возможно в этот момент что-то по крону запускается

 

чтоб отловить, можно графики нарисовать, например

Share this post


Link to post
Share on other sites

srg555

sg не помешает, а tso/lro/gro и прочие receive и segment offload'ы действительно на роутере не нужны

Share this post


Link to post
Share on other sites

 

Current hardware settings:

RX: 256

TX: 512

- вот это надо увеличить до 2048 или 4096

 

спасибо. попробую.

Share this post


Link to post
Share on other sites

Current hardware settings:

RX: 256

TX: 512

- вот это надо увеличить до 2048 или 4096

спасибо. попробую.

Не поможет, можно и не пробовать.

Если б дело было в буферах - были бы rx_no_buffer_count или rx_errors в статистике.

 

Может быть поможет увеличение очереди для проблемного класса

qdisc pfifo 8007: parent :7 limit 1000p
Sent 196440382630 bytes 342631098 pkt (dropped 16150, overlimits 0 requeues 17756) 

Поставьте limit 10000p например.

Share this post


Link to post
Share on other sites

kayot

есть tx_queue_N_restart

 

adron2

Еще проверьте, что прерывания очередей прибиты к ядрам, а не прыгают как им вздумается

Share this post


Link to post
Share on other sites

kayot

есть tx_queue_N_restart

 

adron2

Еще проверьте, что прерывания очередей прибиты к ядрам, а не прыгают как им вздумается

 

прерывания прибиты.

Share this post


Link to post
Share on other sites

Похоже limit 10000p помогло. Я его поставил только для 7-й очереди. Дропов стало меньше и на 7-й очереди они пропали.

Сейчас поставил limit 10000p на всех очередях. Буду тестировать.

Спасибо всем откликнувшимся.

Share this post


Link to post
Share on other sites

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

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