Phoenix Posted December 12, 2010 · Report post Уважаемые коллеги! Прошу у вас помощи в решении проблемы с появлением ошибок в rx_csum_offload_errors. Наша организация имеет статус автономной системы, необходимый нам для сервисов, предоставляемых нашим клиентам. Мы используем маршрутизатор на базе ОС Linux с несколькими сетевыми картами подключенными к трем провайдерам на скорости до 10Мбит/c каждый, только маршрутизация, nat, шейперы и т.д. не используются. К сожалению на всех трех интерфейсах которые смотрят в сторону провайдера появляются ошибки rx_csum_offload_errors, хотелось бы понять возможную причину их появления, а так же варианты устранения. Спасибо. lspci | grep Ether 00:19.0 Ethernet controller: Intel Corporation 82567LM-3 Gigabit Network Connection (rev 02) 03:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (Copper) (rev 06) 03:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (Copper) (rev 06) 04:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (Copper) (rev 06) 04:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (Copper) (rev 06) 07:00.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02) 07:02.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02) ethtool -i eth3 driver: e1000e version: 1.2.10-NAPI firmware-version: 5.10-2 bus-info: 0000:03:00.0 ifconfig eth3 eth3 Link encap:Ethernet HWaddr 00:15:17:F7:08:39 inet addr:XXXX Bcast:XXXX Mask:255.255.255.252 inet6 addr: XXXX/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5210669 errors:0 dropped:0 overruns:0 frame:0 TX packets:966423 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:2000 RX bytes:2816587882 (2.6 GiB) TX bytes:392453661 (374.2 MiB) Interrupt:90 Memory:f7880000-f78a0000 ethtool eth3 Settings for eth3: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbag Wake-on: g Current message level: 0x00000001 (1) Link detected: yes ethtool -g eth3 Ring parameters for eth3: 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 ethtool -k eth3 Offload parameters for eth3: Cannot get device udp large send offload settings: Operation not supported rx-checksumming: on tx-checksumming: on scatter-gather: on tcp segmentation offload: off udp fragmentation offload: off generic segmentation offload: off generic-receive-offload: off ethtool -S eth3 NIC statistics: rx_packets: 5210935 tx_packets: 966542 rx_bytes: 2837662325 tx_bytes: 399171547 rx_broadcast: 6534 tx_broadcast: 5 rx_multicast: 0 tx_multicast: 6 rx_errors: 0 tx_errors: 0 tx_dropped: 0 multicast: 0 collisions: 0 rx_length_errors: 0 rx_over_errors: 0 rx_crc_errors: 0 rx_frame_errors: 0 rx_no_buffer_count: 0 rx_missed_errors: 0 tx_aborted_errors: 0 tx_carrier_errors: 0 tx_fifo_errors: 0 tx_heartbeat_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 tx_restart_queue: 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: 2837662325 rx_csum_offload_good: 4709385 rx_csum_offload_errors: 1037 rx_header_split: 0 alloc_rx_buff_failed: 0 tx_smbus: 0 rx_smbus: 0 dropped_smbus: 0 rx_dma_failed: 0 tx_dma_failed: 0 cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 23 model name : Intel® Core2 Duo CPU E8400 @ 3.00GHz stepping : 10 cpu MHz : 2992.503 cache size : 6144 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : 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 ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm bogomips : 5985.00 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 23 model name : Intel® Core2 Duo CPU E8400 @ 3.00GHz stepping : 10 cpu MHz : 2992.503 cache size : 6144 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : 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 ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm bogomips : 5984.94 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: cat /proc/interrupts CPU0 CPU1 0: 244895069 0 IO-APIC-edge timer 1: 2 0 IO-APIC-edge i8042 8: 1 0 IO-APIC-edge rtc 9: 0 0 IO-APIC-level acpi 12: 4 0 IO-APIC-edge i8042 50: 17500395 0 IO-APIC-level ehci_hcd:usb2, uhci_hcd:usb6 58: 16 0 IO-APIC-level uhci_hcd:usb8 66: 1895387 0 PCI-MSI ahci 138: 12847473 0 PCI-MSI eth2 154: 4964596 0 PCI-MSI eth3 169: 18 0 IO-APIC-level uhci_hcd:usb3 170: 7397518 0 PCI-MSI eth4 177: 2 0 IO-APIC-level uhci_hcd:usb4, uhci_hcd:usb7 186: 1273715 0 PCI-MSI eth5 233: 0 0 IO-APIC-level ehci_hcd:usb1, uhci_hcd:usb5 NMI: 6900 28954 LOC: 244894824 244894768 ERR: 0 MIS: 0 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
photon Posted December 12, 2010 (edited) · Report post Причина скорее всего в глюках драйвера для сетевух. Нужно принудительно отключить rx checksum offload через ethtool, это мало повлияет на загрузку процессора, т.к. скорости у вас до 10 Мбит. Edited December 12, 2010 by photon Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Phoenix Posted December 12, 2010 · Report post Причина скорее всего в глюках драйвера для сетевух. Нужно принудительно отключить rx checksum offload через ethtool, это мало повлияет на загрузку процессора, т.к. скорости у вас до 10 Мбит.Как тогда объяснить отсутствие данной ошибки на интерфейсе смотрящем в нашу сеть? Там тоже используется драйвер e1000e.Спасибо. ethtool -i eth2 driver: e1000e version: 1.2.10-NAPI firmware-version: 0.5-3 bus-info: 0000:00:19.0 ethtool -S eth2 NIC statistics: rx_packets: 8133167 tx_packets: 8243901 rx_bytes: 3859184764 tx_bytes: 3803628570 rx_broadcast: 189 tx_broadcast: 414388 rx_multicast: 0 tx_multicast: 6 rx_errors: 0 tx_errors: 0 tx_dropped: 0 multicast: 0 collisions: 0 rx_length_errors: 0 rx_over_errors: 0 rx_crc_errors: 0 rx_frame_errors: 0 rx_no_buffer_count: 0 rx_missed_errors: 0 tx_aborted_errors: 0 tx_carrier_errors: 0 tx_fifo_errors: 0 tx_heartbeat_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 tx_restart_queue: 1 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: 3859184764 rx_csum_offload_good: 6387618 rx_csum_offload_errors: 0 rx_header_split: 0 alloc_rx_buff_failed: 0 tx_smbus: 0 rx_smbus: 0 dropped_smbus: 0 rx_dma_failed: 0 tx_dma_failed: 0 И еще, как я понял у нас загружено всего лишь одно ядро процессора, как можно распределить нагрузку на оба ядра? cat /proc/interrupts | grep eth138: 12974038 0 PCI-MSI eth2 154: 4985346 0 PCI-MSI eth3 170: 7512112 0 PCI-MSI eth4 186: 1289298 0 PCI-MSI eth5 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Алексей Андриянов Posted December 12, 2010 · Report post И еще, как я понял у нас загружено всего лишь одно ядро процессора, как можно распределить нагрузку на оба ядра? cat /proc/interrupts | grep eth138: 12974038 0 PCI-MSI eth2 154: 4985346 0 PCI-MSI eth3 170: 7512112 0 PCI-MSI eth4 186: 1289298 0 PCI-MSI eth5 Поставьте irqbalance, или напишите скрипт, пишущий при загрузке битовую маску нужного ядра в /proc/irq/xxx/smp_affinity Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Phoenix Posted December 13, 2010 (edited) · Report post Поставьте irqbalance, или напишите скрипт, пишущий при загрузке битовую маску нужного ядра в /proc/irq/xxx/smp_affinityСпасибо за совет.Ребята, еще одна имеется проблема как мне кажется: netstat -s Ip: 24619678 total packets received 3039 with invalid headers 24389313 forwarded 0 incoming packets discarded 219870 incoming packets delivered 24791678 requests sent out 21 outgoing packets dropped 10 dropped because of missing route 21 fragments failed Icmp: 2173 ICMP messages received 297 input ICMP message failed. ICMP input histogram: destination unreachable: 27 timeout in transit: 192 redirects: 11 echo requests: 1901 echo replies: 18 205953 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 201306 time exceeded: 2948 echo request: 18 echo replies: 1681 IcmpMsg: InType0: 18 InType3: 27 InType5: 11 InType8: 1901 InType11: 192 OutType0: 1681 OutType3: 201306 OutType8: 18 OutType11: 2948 Tcp: 234 active connections openings 895 passive connection openings 1 failed connection attempts 7 connection resets received 4 connections established 215823 segments received 194363 segments send out 58 segments retransmited 101 bad segments received. 9299 resets sent Udp: 1151 packets received 488 packets to unknown port received. 0 packet receive errors 1979 packets sent TcpExt: 1726 invalid SYN cookies received 21 packets pruned from receive queue because of socket buffer overrun 91 TCP sockets finished time wait in fast timer 108 TCP sockets finished time wait in slow timer 845 delayed acks sent Quick ack mode was activated 44 times 36 packets directly queued to recvmsg prequeue. 12 packets directly received from prequeue 130263 packets header predicted 20532 acknowledgments not containing data received 2472 predicted acknowledgments TCPDSACKUndo: 1 1 congestion windows recovered after partial ack 0 TCP data loss events 1 timeouts after reno fast retransmit 3 timeouts after SACK recovery 2 retransmits in slow start 39 other TCP timeouts 1388 packets collapsed in receive queue due to low socket buffer 14 DSACKs sent for old packets 5 DSACKs received 861 connections reset due to unexpected data 7 connections reset due to early user close IpExt: InNoRoutes: 626 InBcastPkts: 1064 Беспокоит появление ошибок packets pruned from receive queue because of socket buffer overrun, подскажите пожалуйста в какую сторону смотреть, для устранению их появления в дальнейшем? Спасибо. net.ipv4.tcp_mem = 65536 131072 262144 net.ipv4.udp_mem = 65536 131072 262144 net.ipv4.tcp_rmem = 8192 87380 16777216 net.ipv4.udp_rmem_min = 16384 net.core.rmem_default = 87380 net.core.rmem_max = 16777216 net.ipv4.tcp_wmem = 8192 65536 16777216 net.ipv4.udp_wmem_min = 16384 net.core.wmem_default = 65536 net.core.wmem_max = 16777216 net.core.optmem_max = 65536 cat /proc/meminfo MemTotal: 8009032 kB MemFree: 7148480 kB Buffers: 59200 kB Cached: 339472 kB SwapCached: 0 kB Active: 681160 kB Inactive: 68792 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 8009032 kB LowFree: 7148480 kB SwapTotal: 10059768 kB SwapFree: 10059768 kB Dirty: 4 kB Writeback: 0 kB AnonPages: 351236 kB Mapped: 8496 kB Slab: 83048 kB PageTables: 2968 kB NFS_Unstable: 0 kB Bounce: 0 kB CommitLimit: 10059768 kB Committed_AS: 362860 kB VmallocTotal: 34359738367 kB VmallocUsed: 271044 kB VmallocChunk: 34359465799 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 Hugepagesize: 2048 kB Edited December 13, 2010 by Phoenix Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Алексей Андриянов Posted December 13, 2010 · Report post Беспокоит появление ошибок packets pruned from receive queue because of socket buffer overrun, подскажите пожалуйста в какую сторону смотреть, для устранению их появления в дальнейшем?Раз socket buffer overrun, речь идет не о транзитных пакетах, а на это конкретное устройство. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Phoenix Posted December 13, 2010 (edited) · Report post Раз socket buffer overrun, речь идет не о транзитных пакетах, а на это конкретное устройство.Спасибо, нас конечно же интересует транзитный трафик.Вопрос о rx_csum_offload_errors остался открытым, хочется все же понять на сколько появление данной ошибки говорит о серьезных проблемах и в каком направлении стоит идти, чтобы избавиться от появления ее в дальнейшем? Спасибо. Edited December 13, 2010 by Phoenix Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...