roysbike Posted January 10, 2014 Posted January 10, 2014 (edited) Добрый день коллеги. К сожалению не селен в linux, проще было бы мне в freebsd . Но так сложилось, на BSD не получилось отнатить 4 гбит. Вообщем снимаю по snmp in discards, растут ошибки в часпик до 500 пакетов в сек. Прерывания раскинуты . 99 процентов ната. В часик-пик загрузка по ядрам не более 30 процентов. Загрузка порта RX до 3.5 Гбит TX 900 мбит ,PPS до 300K NAT трансляций до 850К Железо Проц-Intel® Xeon® CPU E5-2430 0 @ 2.20GHz stepping 07- 2шт! В итоге 12 ядер. Карта Intel X520-DA2 2-х портовая Модули SFP+ 10Гбит Версия ubuntu root@rnet:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.3 LTS Release: 12.04 Codename: precise Uplink eth4 10 Гбит ethtool -S eth4 NIC statistics: rx_packets: 2281837791254 tx_packets: 1714884457027 rx_bytes: 2458944620767114 tx_bytes: 713850616560437 rx_pkts_nic: 2281837791052 tx_pkts_nic: 1714884457008 rx_bytes_nic: 2477311750854909 tx_bytes_nic: 728663330317895 lsc_int: 2 non_eop_descs: 9 multicast: 1 broadcast: 960 hw_rsc_aggregated: 15 hw_rsc_flushed: 26 fdir_match: 65123211499 fdir_miss: 2204988624648 fdir_overflow: 9955974 rx_missed_errors: 118547603 tx_restart_queue: 29439 tx_flow_control_xon: 12386 tx_flow_control_xoff: 431040 rx_csum_offload_errors: 2628282 tx_queue_0_packets: 145570098723 tx_queue_0_bytes: 59530974036735 tx_queue_1_packets: 145792522736 tx_queue_1_bytes: 59652362364862 tx_queue_2_packets: 145467571335 tx_queue_2_bytes: 59293847520514 tx_queue_3_packets: 146324266280 tx_queue_3_bytes: 60407360990113 tx_queue_4_packets: 146632796887 tx_queue_4_bytes: 60060125217545 tx_queue_5_packets: 146645141775 tx_queue_5_bytes: 60457453745238 tx_queue_6_packets: 147328612595 tx_queue_6_bytes: 60279191922175 tx_queue_7_packets: 147355006841 tx_queue_7_bytes: 60431622487538 tx_queue_8_packets: 133822337856 tx_queue_8_bytes: 55024357873923 tx_queue_9_packets: 143519877889 tx_queue_9_bytes: 69625941384816 tx_queue_10_packets: 133634699485 tx_queue_10_bytes: 54922287432649 tx_queue_11_packets: 132791524625 tx_queue_11_bytes: 54165091584329 rx_queue_0_packets: 195539798787 rx_queue_0_bytes: 210098193551648 rx_queue_1_packets: 194862210458 rx_queue_1_bytes: 209882133072875 rx_queue_2_packets: 195754385267 rx_queue_2_bytes: 210619066792512 rx_queue_3_packets: 195212331342 rx_queue_3_bytes: 210519930267758 rx_queue_4_packets: 194694253963 rx_queue_4_bytes: 209620468286436 rx_queue_5_packets: 195284532207 rx_queue_5_bytes: 210088592508940 rx_queue_6_packets: 195610999116 rx_queue_6_bytes: 210127124668886 rx_queue_7_packets: 195536266216 rx_queue_7_bytes: 209959122182999 rx_queue_8_packets: 176927220669 rx_queue_8_bytes: 190155306684887 rx_queue_9_packets: 186966868361 rx_queue_9_bytes: 205574678271421 rx_queue_10_packets: 177697979776 rx_queue_10_bytes: 191108615422454 rx_queue_11_packets: 177750945092 rx_queue_11_bytes: 191191389056298 ethtool -k eth4 Offload parameters for eth4: rx-checksumming: on tx-checksumming: on scatter-gather: on tcp-segmentation-offload: on udp-fragmentation-offload: off generic-segmentation-offload: on generic-receive-offload: on large-receive-offload: off rx-vlan-offload: on tx-vlan-offload: on ntuple-filters: off receive-hashing: on ethtool -i eth4 driver: ixgbe version: 3.6.7-k firmware-version: 0x61ae0001 bus-info: 0000:06:00.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes NAT по подсетям, на каждый реальный ip сеть/23. Итого гдето 44 IP. Может стоит разбить на hash ? Edited January 10, 2014 by roysbike Вставить ник Quote
kayot Posted January 10, 2014 Posted January 10, 2014 rx_missed_errors - ring buffer крутить нужно насколько я понимаю. Вставить ник Quote
martini Posted January 10, 2014 Posted January 10, 2014 tcp-segmentation-offload: on generic-segmentation-offload: on generic-receive-offload: on Вырубить нафиг, оно для серваков только. ну и не мешало бы взглянуть какие опции sysctl крутили, а если не крутили - то вот еще поле где копать нужно ) Вставить ник Quote
disappointed Posted January 10, 2014 Posted January 10, 2014 rx_missed_errors: 118547603 ethtool -G eth4 tx 4096 rx 4096 Ещё можно уменьшить тайминги conntrack до минимумов и посмотреть в iptables сколько правил проходит отначиваемый трафик, оставить минимум или привести к древовидной структуре. Вставить ник Quote
roysbike Posted January 11, 2014 Author Posted January 11, 2014 (edited) rx_missed_errors - ring buffer крутить нужно насколько я понимаю. rx_missed_errors: 118547603 ethtool -G eth4 tx 4096 rx 4096 Ещё можно уменьшить тайминги conntrack до минимумов и посмотреть в iptables сколько правил проходит отначиваемый трафик, оставить минимум или привести к древовидной структуре. Спасибо ! Пока помогло! вроде больше rx_missed_errors: не растет. in_discard тоже не растет. Как можно сбросить счетчики которые в ethtool -S? NAT выглядит так #NAT PPPoE $IPTABLES -t nat -A POSTROUTING -o $OUT_IFACE2 -s 172.30.0.0/23 -j SNAT --to-source 31.210.x.1 $IPTABLES -t nat -A POSTROUTING -o $OUT_IFACE2 -s 172.30.2.0/23 -j SNAT --to-source 31.210.x.2 $IPTABLES -t nat -A POSTROUTING -o $OUT_IFACE2 -s 172.30.4.0/23 -j SNAT --to-source 31.210.x.3 $IPTABLES -t nat -A POSTROUTING -o $OUT_IFACE2 -s 172.30.6.0/23 -j SNAT --to-source 31.210.x.4 $IPTABLES -t nat -A POSTROUTING -o $OUT_IFACE2 -s 172.30.8.0/23 -j SNAT --to-source 31.210.x.5 $IPTABLES -t nat -A POSTROUTING -o $OUT_IFACE2 -s 172.30.10.0/23 -j SNAT --to-source 31.210.x.6 $IPTABLES -t nat -A POSTROUTING -o $OUT_IFACE2 -s 172.30.12.0/23 -j SNAT --to-source 31.210.x.7 $IPTABLES -t nat -A POSTROUTING -o $OUT_IFACE2 -s 172.30.14.0/23 -j SNAT --to-source 31.210.x.8 и тд 44 IP sysctl net.ipv4.neigh.default.gc_thresh1 = 8192 net.ipv4.neigh.default.gc_thresh2 = 16384 net.ipv4.neigh.default.gc_thresh3 = 16384 net.ipv4.neigh.default.base_reachable_time=86400 net.netfilter.nf_conntrack_generic_timeout=120 et.ipv4.tcp_sack = 0 net.ipv4.tcp_timestamps = 0 Edited January 11, 2014 by roysbike Вставить ник Quote
disappointed Posted January 14, 2014 Posted January 14, 2014 Как можно сбросить счетчики которые в ethtool -S? Отключить карту и выгрузить модуль. Либо ребут. Таймауты уменьшить примерно так. net.ipv4.netfilter.ip_conntrack_generic_timeout = 60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 15 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent2 = 15 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 30 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 900 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 30 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 20 net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30 net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 30 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10 net.ipv4.netfilter.ip_conntrack_udp_timeout = 30 net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 45 net.ipv4.netfilter.ip_conntrack_icmp_timeout = 10 Особый вред несёт завышенный ip_conntrack_tcp_timeout_syn_sent, сканы tcp портов вирусни забивают таблицу. Вставить ник Quote
roysbike Posted January 26, 2014 Author Posted January 26, 2014 (edited) спасибо за советы, таблица трансляций conntrack уменьшилась почти в 2 раза. Но в час-пик растет ping, дропов нет, не пойму где узкое место. Растут только rx_csum_offload_errors: 2858568 . Может конечно проблемы у вышестоящего, но до их шлюза тоже icmp ответы растут. У меня 2 uplink физический в одном порту на сервере, раскинуты vlan-ами, на 2-ом провайдере до их шлюза ping ровный не растет. МОжет всетаки карточка не "упирается"? Edited January 26, 2014 by roysbike Вставить ник Quote
roysbike Posted January 29, 2014 Author Posted January 29, 2014 всем спасибо! Были проблемы у вышестоящего! На сколько критичны ошибки rx_csum_offload_errors? Вставить ник Quote
nshut Posted January 29, 2014 Posted January 29, 2014 tcp-segmentation-offload: ongeneric-segmentation-offload: on generic-receive-offload: on если изменять, то только эти параметры и наблюдать. Я тоже начитавшись советов поизменял все кучей. Два дня проблему искал, то пинги росли, то ошибки сыпались. сейчас на штатных дровах centos с ethtool применил только размер очередей и количество очередей ethtool -L ix0 combined 6 ethtool -L ix1 combined 6 ethtool -G ix1 tx 4096 rx 4096 ethtool -G ix0 tx 4096 rx 4096 и проблемы все с ошибками ушли. все tso, gro и т.д. опции читал по интел документации и все параметры настраивал и с другой стороны. Факт на лицо, без касания этих именно параметров стало лучше. Увы тестировать какой именно проблему вызывает на рабочей системе не могу :( , хотя крутил их ночью и по очереди и с перезагрузкой сервера. Вставить ник Quote
roysbike Posted January 29, 2014 Author Posted January 29, 2014 tcp-segmentation-offload: ongeneric-segmentation-offload: on generic-receive-offload: on если изменять, то только эти параметры и наблюдать. Я тоже начитавшись советов поизменял все кучей. Два дня проблему искал, то пинги росли, то ошибки сыпались. сейчас на штатных дровах centos с ethtool применил только размер очередей и количество очередей ethtool -L ix0 combined 6 ethtool -L ix1 combined 6 ethtool -G ix1 tx 4096 rx 4096 ethtool -G ix0 tx 4096 rx 4096 и проблемы все с ошибками ушли. все tso, gro и т.д. опции читал по интел документации и все параметры настраивал и с другой стороны. Факт на лицо, без касания этих именно параметров стало лучше. Увы тестировать какой именно проблему вызывает на рабочей системе не могу :( , хотя крутил их ночью и по очереди и с перезагрузкой сервера. Сколько в час-пик прокачилвали , если не секрет. У меня чисто NAT, RX3.5 Гбит TX 0.8 Гбит, 400 PPS , прервания до 45 процентов на ядро. 12 ядер Вставить ник Quote
martini Posted January 29, 2014 Posted January 29, 2014 а пуругружать то сервак зачем ??.. И почитайте в документации дров что рекомендует Интел по поводу TSO Вставить ник Quote
nshut Posted January 30, 2014 Posted January 30, 2014 а пуругружать то сервак зачем ?? начинал тюнить на дебияне, некоторые параметры включались по 5 минут, точнее связь пропадала до сервера на 5 минут. кто виноват не скажу. но я привык делать так. #!/bin/sh ethtool -x xxxxxx sleep 60 reboot т.е. если связь не теряется, я успеваю остановить ребут. иначе в ребут. хватило два раза выезда на голову. Сколько в час-пик прокачилвали , если не секрет. У меня чисто NAT, RX3.5 Гбит TX 0.8 Гбит, 400 PPS , прервания до 45 процентов на ядро. 12 ядер 600Кппс, 5Гб вход, 1,2Г аут, 1,5Мега стейтов. NAT + policer (ISG) загрузка проца 60% в пике. больше не грузил, начинаются дропы в сетевой дырке входящей, т.е. с инета. Сетвевая двухдырковая x520DA2 Вставить ник Quote
roysbike Posted February 18, 2014 Author Posted February 18, 2014 (edited) Добрый вечер, уважаемые коллеги. Проблема выше исправилась, но в час-пик есть потери icmp и не много вырос RTA , c 15 мс до 17мс. rx_missed_errors не растут. Люди жалуются на танки и другие онлайн игры в час-пик. Машина только для NAT. Шейпера и сенсора нет. Может конечно грешить на вышестоящий. ethtool -S eth4 NIC statistics: rx_packets: 2886465335970 tx_packets: 2165188625753 rx_bytes: 3113059633577509 tx_bytes: 893750844384680 rx_pkts_nic: 2886464940796 tx_pkts_nic: 2165188328332 rx_bytes_nic: 3136265031853335 tx_bytes_nic: 912448206320290 lsc_int: 17 tx_busy: 0 non_eop_descs: 9 rx_errors: 0 tx_errors: 0 rx_dropped: 0 tx_dropped: 0 multicast: 1 broadcast: 962 rx_no_buffer_count: 0 collisions: 0 rx_over_errors: 0 rx_crc_errors: 0 rx_frame_errors: 0 hw_rsc_aggregated: 15 hw_rsc_flushed: 26 fdir_match: 65178682629 fdir_miss: 2810039567478 fdir_overflow: 14811414 rx_fifo_errors: 0 rx_missed_errors: 120476794 tx_aborted_errors: 0 tx_carrier_errors: 0 tx_fifo_errors: 0 tx_heartbeat_errors: 0 tx_timeout_count: 6 tx_restart_queue: 37902 rx_long_length_errors: 0 rx_short_length_errors: 0 tx_flow_control_xon: 12557 rx_flow_control_xon: 0 tx_flow_control_xoff: 443384 rx_flow_control_xoff: 0 rx_csum_offload_errors: 3614194 alloc_rx_page_failed: 0 alloc_rx_buff_failed: 0 rx_no_dma_resources: 0 os2bmc_rx_by_bmc: 0 os2bmc_tx_by_bmc: 0 os2bmc_tx_by_host: 0 os2bmc_rx_by_host: 0 fcoe_bad_fccrc: 0 rx_fcoe_dropped: 0 rx_fcoe_packets: 0 rx_fcoe_dwords: 0 fcoe_noddp: 0 fcoe_noddp_ext_buff: 0 tx_fcoe_packets: 0 tx_fcoe_dwords: 0 tx_queue_0_packets: 183957153296 tx_queue_0_bytes: 74734667038402 tx_queue_1_packets: 184406005117 tx_queue_1_bytes: 75091128364271 tx_queue_2_packets: 183941002115 tx_queue_2_bytes: 74535583525494 tx_queue_3_packets: 184623948185 tx_queue_3_bytes: 75621811307920 tx_queue_4_packets: 185556215897 tx_queue_4_bytes: 75678077255457 tx_queue_5_packets: 185283538689 tx_queue_5_bytes: 76044349202059 tx_queue_6_packets: 186051031044 tx_queue_6_bytes: 75760776988042 tx_queue_7_packets: 186568737232 tx_queue_7_bytes: 76076597407057 tx_queue_8_packets: 169154101354 tx_queue_8_bytes: 69107443921754 tx_queue_9_packets: 178706198246 tx_queue_9_bytes: 83636053156613 tx_queue_10_packets: 168893214955 tx_queue_10_bytes: 69140231329551 tx_queue_11_packets: 168047479623 tx_queue_11_bytes: 68324124888060 rx_queue_0_packets: 247435821456 rx_queue_0_bytes: 266335072400937 rx_queue_1_packets: 246919420907 rx_queue_1_bytes: 266241209343231 rx_queue_2_packets: 247745477826 rx_queue_2_bytes: 266826656951940 rx_queue_3_packets: 246976750994 rx_queue_3_bytes: 266485040685455 rx_queue_4_packets: 246485975584 rx_queue_4_bytes: 265826380521477 rx_queue_5_packets: 247518157879 rx_queue_5_bytes: 266483424993475 rx_queue_6_packets: 247675384406 rx_queue_6_bytes: 266296200605502 rx_queue_7_packets: 247410174477 rx_queue_7_bytes: 266010612489679 rx_queue_8_packets: 224124823450 rx_queue_8_bytes: 241288419381790 rx_queue_9_packets: 234173968221 rx_queue_9_bytes: 256657232219425 rx_queue_10_packets: 224798624627 rx_queue_10_bytes: 242085487703227 rx_queue_11_packets: 225200756143 rx_queue_11_bytes: 242523896281371 ethtool -a eth4 Pause parameters for eth4: Autonegotiate: off RX: off TX: off ethtool -k eth4 Offload parameters for eth4: 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 large-receive-offload: off rx-vlan-offload: on tx-vlan-offload: on ntuple-filters: off receive-hashing: on ethtool -g eth4 Ring parameters for eth4: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 Current hardware settings: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 sysctl.conf net.ipv4.neigh.default.gc_thresh1 = 8192 net.ipv4.neigh.default.gc_thresh2 = 16384 net.ipv4.neigh.default.gc_thresh3 = 16384 net.ipv4.ip_local_port_range = 1024 65000 net.netfilter.nf_conntrack_generic_timeout=120 net.ipv4.tcp_sack = 0 net.ipv4.tcp_timestamps = 0 net.ipv4.netfilter.ip_conntrack_generic_timeout = 60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 15 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent2 = 15 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 30 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 900 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 30 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 20 net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30 net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 30 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10 net.ipv4.netfilter.ip_conntrack_udp_timeout = 30 net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 45 net.ipv4.netfilter.ip_conntrack_icmp_timeout = 10 top top - 21:41:46 up 228 days, 12:20, 2 users, load average: 0.08, 0.13, 0.13 Tasks: 143 total, 1 running, 142 sleeping, 0 stopped, 0 zombie Cpu0 : 0.3%us, 0.7%sy, 0.0%ni, 70.1%id, 0.0%wa, 0.0%hi, 28.9%si, 0.0%st Cpu1 : 0.3%us, 0.0%sy, 0.0%ni, 67.0%id, 0.0%wa, 0.0%hi, 32.7%si, 0.0%st Cpu2 : 0.3%us, 0.3%sy, 0.0%ni, 70.8%id, 0.0%wa, 0.0%hi, 28.5%si, 0.0%st Cpu3 : 0.3%us, 0.0%sy, 0.0%ni, 71.5%id, 0.0%wa, 0.0%hi, 28.1%si, 0.0%st Cpu4 : 0.0%us, 0.3%sy, 0.0%ni, 71.5%id, 0.0%wa, 0.0%hi, 28.1%si, 0.0%st Cpu5 : 0.7%us, 0.0%sy, 0.0%ni, 71.0%id, 0.0%wa, 0.0%hi, 28.3%si, 0.0%st Cpu6 : 0.3%us, 0.0%sy, 0.0%ni, 70.6%id, 0.0%wa, 0.0%hi, 29.0%si, 0.0%st Cpu7 : 0.3%us, 0.0%sy, 0.0%ni, 66.8%id, 0.0%wa, 0.0%hi, 32.9%si, 0.0%st Cpu8 : 0.3%us, 0.3%sy, 0.0%ni, 70.4%id, 0.0%wa, 0.0%hi, 28.9%si, 0.0%st Cpu9 : 1.0%us, 0.0%sy, 0.0%ni, 70.9%id, 0.0%wa, 0.0%hi, 28.0%si, 0.0%st Cpu10 : 0.3%us, 0.3%sy, 0.0%ni, 70.6%id, 0.0%wa, 0.0%hi, 28.7%si, 0.0%st Cpu11 : 0.3%us, 0.0%sy, 0.0%ni, 72.0%id, 0.0%wa, 0.0%hi, 27.7%si, 0.0%st Mem: 24651672k total, 3814112k used, 20837560k free, 223092k buffers Swap: 0k total, 0k used, 0k free, 1627072k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 20206 bind 20 0 998m 152m 2892 S 11 0.6 2356:53 named 23 root 20 0 0 0 0 S 0 0.0 157:05.78 ksoftirqd/4 92 root 20 0 0 0 0 S 0 0.0 3:26.73 kworker/u:5 386 root 20 0 0 0 0 S 0 0.0 22:08.66 md0_raid1 33450 root 20 0 0 0 0 S 0 0.0 0:16.84 kworker/0:1 41595 root 20 0 17340 1328 972 R 0 0.0 0:00.04 top 49286 snmp 20 0 51784 5588 2816 S 0 0.0 5:01.38 snmpd 1 root 20 0 24332 2332 1360 S 0 0.0 3:02.62 init CPU Edited February 18, 2014 by roysbike Вставить ник Quote
xxxupg Posted February 18, 2014 Posted February 18, 2014 roysbike сори за оффтоп, чем состоится график? :) Вставить ник Quote
roysbike Posted February 19, 2014 Author Posted February 19, 2014 всмысле состоится?) Чем рисуется? Вставить ник Quote
roysbike Posted February 19, 2014 Author Posted February 19, 2014 roysbike сори за оффтоп, чем состоится график? :) Рисует это все в связке, nagios+pnp4nagios (основа rrdtool) , самопиные скрипты для nagios и шаблоны для pnp4nagios. Шаблон взял за основу http://docs.pnp4nagios.org/templates/gradient Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.