Перейти к содержимому
Калькуляторы

Помониторьте /proc/sys/net/netfilter/nf_conntrack_count

Возможно дело где-то в этом направлении

 

у меня нет /proc/sys/net/netfilter/nf_conntrack_count, а есть net.ipv4.netfilter.ip_conntrack_count, я так понимаю это тоже самое?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

да

ну или

/proc/sys/net/ipv4/netfilter/ip_conntrack_count

 

есть подозрение что вырастает кол-во трансляций и все, хотя это и не очень вероятно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Centos 5.6

Ядро н-летней давности... Я бы посоветовал собрать свежее ядро (ну или поискать в репозиториях). 2.6.35.х к примеру себя весьма стабильно и предсказуемо показало (2.6.35.14 есть в гите LEAF, откуда его можно вытянуть - на kernel.org после того как их похачили 2.6.35 ветка куда-то подевалась), или 3.1 пробовать если хочется чего-то очень нового.

Единственный минус 2.6.35.х ветки - странное поведение связки htb+bonding.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

кто подскажет как промониторить утилизацию очередей интерфейса, чтобы проверить успевает ли сервер освобождать очереди или они со временем переполняются?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Единственный минус 2.6.35.х ветки - странное поведение связки htb+bonding.

А можно уточнить, что за косяки? У меня как раз такая конфигурация...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А можно уточнить, что за косяки? У меня как раз такая конфигурация...

Дропы пакетов под нагрузкой (300-500 мбит), если поднять htb+sfq (несколько классов для приоритезации внешнего канала) на бондинге. При пинге пакетами более 10к - эдак с 20-30к пролазить перестают вообще (опять же, под нагрузкой, без нагрузки - не тестил). Ядро 2.6.35.8, x86, оптимизированное под PII. На 2.6.35.14 - не проверял еще.

Изменено пользователем NiTr0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Коллеги, а подскажите, пожалуйста, имеет ли смысл брать Ксеоны семейства E3 под НАТ/Шейпер гигабита? Чтобы не задавать вопрос и в других ветках, под FreeBSD, а не только под Линукс, тоже интересно. ;)

 

===

 

Supermicro 1U Platform 5017C-MTF, 1U, X9SCL-F LGA1155, 4x DDR3 ECC, 4 x SATA, 2x1Gbit eth, IPMI, PWS-351-1H 350W 1

CPU Intel Xeon E3-1270 3400/8M, 80W, LGA1155 1

Memory 2GB, DDR3, 1333MHz, PC3-10666, ECC 2

 

===

 

1300 американских (а может, даже и меньше).

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1U, X9SCL-F LGA1155, 4x DDR3 ECC, 4 x SATA, 2x1Gbit eth

Встроенных карт слишком мало, чтобы нормально нагрузить даже Core i3.

Места для установки дополнительных карт почти нет.

 

Если бы надо было получить больше 2мбпс в одну сторону - я бы смотрел

в сторону http://www.supermicro.com/products/system/2U/5026/SYS-5026T-T.cfm

и Core i7-2600.

 

Если меньше 2 мбпс, то почти без разницы, на чём.

Например, http://www.supermicro.com/products/system/1U/5016/SYS-5016I-MR.cfm и Core i5-750.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

что может стать причиной накопления ошибок, медленно но уверенно накапливаются на одном из интерфейсов, на втором чисто (82576 NAT ipset TC htb):

rx_queue_0_csum_err: 190

rx_queue_1_csum_err: 583

rx_queue_2_csum_err: 248

rx_queue_3_csum_err: 611

это при 200Mbit при пиках в 400Mbit кол-во сильно возрастает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На X9CSL-F 82579 и 82574. Лучше онбордных сетевых я не встречал. Если не хватит, на борту есть один PCI-E - хватит на интеловскую четырёхпортовку, которые как раз некуда девать после покупки десяточных карт :)

 

Второй вариант выглядит вообще бессмысленно. Нафига роутеру куча хотсвопных винтов и четыре юнита?!

 

Для второго и третьего варианта - брать Core i5/i7 не вижу смысла из-за отсутствия поддержки ECC. Кроме того, по производительности он близок к E3, но кеша у них меньше.

 

5017С-TF ещё понравился, из того же свежего семейства E3.

Изменено пользователем Dyr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

на борту есть один PCI-E - хватит на интеловскую четырёхпортовку, которые как раз некуда девать после покупки десяточных карт :)

Если она уже есть, тогда да.

Если надо покупать, то это дороже, чем 2u + несколько однопортовых.

 

Второй вариант выглядит вообще бессмысленно. Нафига роутеру куча хотсвопных винтов и четыре юнита?!

2u + много слотов = самый дешёвый вариант для 3-4мбпс.

Если использовать карты 10г - то достаточно пространства для вентиляции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На X9CSL-F 82579 и 82574. Лучше онбордных сетевых я не встречал. Если не хватит, на борту есть один PCI-E - хватит на интеловскую четырёхпортовку, которые как раз некуда девать после покупки десяточных карт :)

82574 не такой уж и крутой чип, у нас на супермикро с такими сетевками начинались потери после 600-700мбит. Установка двухголовой платы на 82576 решила все проблемы.

А так под гиг(а может и два) трафика такого сервера достаточно с запасом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2yannails: Посмотрите ошибки на порту коммутатора. Ошибки в чексуммах обычно возникают именно на стыке. Вернее сказать, я других ситуаций, когда они возникают, - и не знаю.

 

2telecom: Бурное обсуждение начинается, когда предоставляются все данные. Когда данные в расследовании проблемы приходят отрывками, помогать очень сложно, если вообще реально. Я вас попросил показать буфер _и_ состояние порта коммутатора. Вы показали ринг и всё. Ринг обсуждать нечего, показывайте коммутатор.

 

Насчет карт посмотрите в сторону 82575 еще. Это младшая модель 82576 и имеет по 4 очереди на порт ( вместо 8ми ). Стоит в 2 раза дешевле. Гиг прожует без вопросов, если CPU хватит. Я бы рекомендовал брать именно 82575, 82576. С ними сон дежурного становится гарантированно приятным и продолжительным.

 

Насчет ядер, то если не надо фичи ядер старше, я бы рекомендовал оставаться на последних версиях 2.6.27. Там всё гарантированно нормально работает, и главное, быстро. Если надо, то начинается свистопляска с отдельными боками разных версий. Где-то НАТ укладывает машину на 3х Гбитах, где-то проблемы с бондингом, где-то проблемы с шейпером. Если кто-то нашел ядро посвежее и стабильное, а главное быстрое - расскажите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стоит в 2 раза дешевле.

Где можно такую 2-портовку за $60-80 купить, подскажите :) Потому как 82576 где-то 120-160 стоят.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, за 80 были, когда покупал 82576 себе. Нарыл в Инете поставщика, который под заказ привез, правда партию 82576. Сейчас контакты не найду, к сожалению.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я видел только 571-е однопортовки (или 572-е? не помню) по $80...

82575 купил бы, даже с запасом. Ибо 4 tx+rx очередей с головой ИМХО.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поищите, я думаю, что найдете. Я тогда 82576 купил из-за жадности, думал, что 4 очереди не хватит. В целом, зависит от задач. Если это не бордер, а какой-нибудь шейперо-фаер, то может оказаться, что и 8мь очередей мало. Для моих же задач, да я думаю и для всех в основном, 4 очереди - навалом.

Изменено пользователем Dark_Angel

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По моей проблеме.

 

Вынес из ядра e1000e с одновременным обновлением "коробочной" версии драйвера 1.2.20-k2 до интеловских 1.6.3-NAPI. Перегрузился, подгружаю модуль с параметрами "IntMode=1,1,1,1 InterruptThrottleRate=1,1,1,1". Дропов больше нет.

 


# ethtool -S eth0| grep -v ": 0"
NIC statistics:
	rx_packets: 271809029
	tx_packets: 218773963
	rx_bytes: 244491036465
	tx_bytes: 130161238619
	rx_broadcast: 378
	tx_broadcast: 3515
	tx_multicast: 15
	rx_missed_errors: 50
	tx_tcp_seg_good: 7
	rx_long_byte_count: 244491036465
	rx_csum_offload_good: 222584396
	rx_csum_offload_errors: 4254
	tx_smbus: 3524
	rx_smbus: 392
# ethtool -S eth1| grep -v ": 0"
NIC statistics:
	rx_packets: 221903221
	tx_packets: 237772398
	rx_bytes: 131318702764
	tx_bytes: 244341727619
	rx_broadcast: 1978
	tx_broadcast: 371
	rx_multicast: 11802
	tx_multicast: 1115
	multicast: 11802
	tx_tcp_seg_good: 381
	rx_long_byte_count: 131318702764
	rx_csum_offload_good: 199909676
rx_csum_offload_errors: 581

 

 

Уж не знаю почему, но для сетевых очередей (они идут с 40 по 46 IRQ) название стало отображаться совершенно криво, но понятие о распределении даёт:

 


# cat /proc/interrupts | grep -v "          0          0          0          0"
      	CPU0   	CPU1   	CPU2   	CPU3
 0:        122          0          0    1930815   IO-APIC-edge      timer
 1:          0          0          0          8   IO-APIC-edge      i8042
 8:          0          0          0          1   IO-APIC-edge      rtc0
18:      35288          0   	3045          0   IO-APIC-fasteoi   aacraid, ehci_hcd:usb1, uhci_hcd:usb8
19:          0     	45          0          0   IO-APIC-fasteoi   uhci_hcd:usb5, uhci_hcd:usb7
40:          0   	7209          0  122735926   PCI-MSI-edge      -updates_multiverse_i18n_Translation-ru
41:          0          0   76083780          0   PCI-MSI-edge      -updates_multiverse_i18n_Translation-en.gz
42:     	15     	61          9          0   PCI-MSI-edge      eth0
43:          0          0          0     	31   PCI-MSI-edge      ahci
44:   75876406          0          0        134   PCI-MSI-edge      -updates_restricted_i18n_Translation-ru
45:          0          0          0  115049038   PCI-MSI-edge      -updates_restricted_i18n_Translation-ru%5fRU
46:          3          0          4          0   PCI-MSI-edge      eth1
LOC:    2595566 	195938 	320522    3261937   Local timer interrupts
RES:        335        281        174        147   Rescheduling interrupts
CAL:   	1256   	1644   	2173   	2320   Function call interrupts
TLB:        286        348        913   	1059   TLB shootdowns
MCP:     	32     	32     	32     	32   Machine check polls
ERR:          0
MIS:          0


 

 

 

 

Привязывал так:

 


#!/bin/bash

ncpus=`grep -ciw ^processor /proc/cpuinfo`
test "$ncpus" -gt 1 || exit 1

n=0
for irq in `cat /proc/interrupts | grep "eth" | awk '{print $1}' | sed s/\://g`
do
   f="/proc/irq/$irq/smp_affinity"
   test -r "$f" || continue
   cpu=$[$ncpus - ($n % $ncpus) - 1]
   if [ $cpu -ge 0 ]
           then
               mask=`printf %x $[2 ** $cpu]`
               echo "Assign SMP affinity: eth$n, irq $irq, cpu $cpu, mask 0x$mask"
               echo "$mask" > "$f"
               let n+=1
   fi
done

 





# cat /proc/irq/4[0-6]/smp_affinity


08
04
01
04
01
08
04

 

 

 

Изменено пользователем Dyr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да блин, стоило сделать тюнинг из sysctl, пошли дропы.

 

"Тюнинх":

 


net.ipv4.conf.default.forwarding=1
net.ipv4.conf.all.forwarding=1
net.ipv4.netfilter.ip_conntrack_max=655360
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=3600

net.core.wmem_max=16777216
net.ipv4.tcp_rmem="4096 8388608 16777216"
net.ipv4.tcp_wmem="4096 4194394 16777216"
net.core.wmem_default=4194394
net.core.rmem_default=8388608
net.core.netdev_max_backlog=8192
net.ipv4.tcp_max_syn_backlog=1024
net.core.somaxconn=262144
net.netfilter.nf_conntrack_tcp_be_liberal=1
net.ipv4.tcp_sack=0

 

 

 

 

Причём все, похоже, пошли на rx_missed_errors. Ring Buffer до 4096 был увеличен заранее.

 

 

 

Изменено пользователем Dyr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а откуда у вас rx_csum_offload_errors: 4254 и не увеличиваются ли они с missed_errors? Сколько прерываний выполняется? На сколько я вижу CPU1 вообще без сетевых сидит, зато CPU3 аж с двумя?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

rx_csum_offload_errors медленно увеличивается, но началось ещё до дропов.

 

Сейчас цифры такие:

 


NIC statistics:
	rx_packets: 642935784
	tx_packets: 517721956
	rx_bytes: 574049395120
	tx_bytes: 317814482211
	rx_broadcast: 803
	tx_broadcast: 7043
	tx_multicast: 15
	rx_missed_errors: 200073
	tx_tcp_seg_good: 118
	rx_long_byte_count: 574049395120
	rx_csum_offload_good: 532871334
	rx_csum_offload_errors: 9946
	tx_smbus: 7068
	rx_smbus: 833

 

 

Интересно, что дропы только на внешнем интерфейсе, на внутреннем дропов нет:

 


NIC statistics:
	rx_packets: 526614536
	tx_packets: 569446441
	rx_bytes: 321880855486
	tx_bytes: 576654569693
	rx_broadcast: 3900
	tx_broadcast: 527
	rx_multicast: 23684
	tx_multicast: 2218
	multicast: 23684
	tx_tcp_seg_good: 776
	tx_flow_control_xon: 12332
	tx_flow_control_xoff: 10353
	rx_long_byte_count: 321880855486
	rx_csum_offload_good: 473161566
	rx_csum_offload_errors: 2330

 

 

По vmstat 64000 int/sec,

 

 

 

 

mpstat -P ALL 10

Linux 2.6.38.8-nat (bastinda)   11/24/11        _x86_64_        (4 CPU)

19:21:12 	CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
19:21:22 	all    0.05    0.00    0.08    0.00    0.00    4.79    0.00    0.00   95.08
19:21:22   	0    0.00    0.00    0.10    0.00    0.00    9.08    0.00    0.00   90.82
19:21:22   	1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
19:21:22   	2    0.00    0.00    0.00    0.00    0.00    0.10    0.00    0.00   99.90
19:21:22   	3    0.20    0.00    0.20    0.00    0.00    9.82    0.00    0.00   89.78

 

 

 

 

 

perf top


----------------------------------------------------------------------------------------------------------------------------
  PerfTop: 	987 irqs/sec  kernel:100.0%  exact:  0.0% [1000Hz cycles],  (all, 4 CPUs)
----------------------------------------------------------------------------------------------------------------------------

        	samples  pcnt function                    DSO
        	_______ _____ ___________________________ ________________________________________________________________

             442.00  7.5% ip_route_input_common   	/lib/modules/2.6.38.8-nat/build/vmlinux
             354.00  6.0% e1000_clean_rx_irq          /lib/modules/2.6.38.8-nat/kernel/drivers/net/e1000e/e1000e.ko
             337.00  5.7% _raw_spin_lock              /lib/modules/2.6.38.8-nat/build/vmlinux
             284.00  4.8% intel_idle                  /lib/modules/2.6.38.8-nat/build/vmlinux
             189.00  3.2% e1000_xmit_frame            /lib/modules/2.6.38.8-nat/kernel/drivers/net/e1000e/e1000e.ko
             178.00  3.0% ipt_do_table                /lib/modules/2.6.38.8-nat/kernel/net/ipv4/netfilter/ip_tables.ko
             173.00  2.9% ____nf_conntrack_find   	/lib/modules/2.6.38.8-nat/kernel/net/netfilter/nf_conntrack.ko
             129.00  2.2% nf_iterate                  /lib/modules/2.6.38.8-nat/build/vmlinux

 

 

 

 

Прерывания с CPU3 перенёс на CPU1 сразу после того, как запостил. :)

 

 

 

 

 

 

Изменено пользователем Dyr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На порту коммутатора точно ошибок нет, потому что я видимой причины ошибок не вижу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Точно нет:

 


home-rs#show int GigabitEthernet1/0/14 controller
GigabitEthernet1/0/14 is up, line protocol is up (connected)
 Hardware is Gigabit Ethernet, address is 0014.f286.530e (bia 0014.f286.530e)
 Description: Bastinda (CARP1)/em0
 MTU 9198 bytes, BW 1000000 Kbit, DLY 10 usec,
    reliability 255/255, txload 63/255, rxload 41/255
 Encapsulation ARPA, loopback not set
 Keepalive not set
 Full-duplex, 1000Mb/s, media type is 10/100/1000BaseTX
 input flow-control is off, output flow-control is unsupported
 ARP type: ARPA, ARP Timeout 04:00:00
 Last input never, output never, output hang never
 Last clearing of "show interface" counters 00:26:40
 Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
 Queueing strategy: fifo
 Output queue: 0/40 (size/max)
 5 minute input rate 160829000 bits/sec, 30101 packets/sec
 5 minute output rate 250145000 bits/sec, 34839 packets/sec
    48189584 packets input, 1423335431 bytes, 0 no buffer
    Received 638 broadcasts (0 multicast)
    0 runts, 0 giants, 0 throttles
    0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
    0 watchdog, 0 multicast, 0 pause input
    0 input packets with dribble condition detected
    56744759 packets output, 12921381 bytes, 0 underruns
    0 output errors, 0 collisions, 0 interface resets
    0 babbles, 0 late collision, 0 deferred
    0 lost carrier, 0 no carrier, 0 PAUSE output
    0 output buffer failures, 0 output buffers swapped out

    Transmit GigabitEthernet1/0/14           Receive
  3481867647 Bytes                       4002344750 Bytes
  2978343819 Unicast frames               658256706 Unicast frames
     4376288 Multicast frames              36352114 Multicast frames
    32218481 Broadcast frames               1036031 Broadcast frames
           0 Too old frames              1245970101 Unicast bytes
           0 Deferred frames             2690070600 Multicast bytes
           0 MTU exceeded frames           66306523 Broadcast bytes
           0 1 collision frames                   0 Alignment errors
           0 2 collision frames                   0 FCS errors
           0 3 collision frames                   0 Oversize frames
           0 4 collision frames                   0 Undersize frames
           0 5 collision frames                   0 Collision fragments
           0 6 collision frames
           0 7 collision frames          1217767372 Minimum size frames
           0 8 collision frames          2061347821 65 to 127 byte frames
           0 9 collision frames          2897232743 128 to 255 byte frames
           0 10 collision frames         4116246921 256 to 511 byte frames
           0 11 collision frames         2965315993 512 to 1023 byte frames
           0 12 collision frames          322634871 1024 to 1518 byte frames
           0 13 collision frames                  0 Overrun frames
           0 14 collision frames                  0 Pause frames
           0 15 collision frames
           0 Excessive collisions                 1 Symbol error frames
           0 Late collisions                      0 Invalid frames, too large
           0 VLAN discard frames               1019 Valid frames, too large
           0 Excess defer frames                  0 Invalid frames, too small
  2037374316 64 byte frames                       0 Valid frames, too small
    20062806 127 byte frames
   193945783 255 byte frames                      0 Too old frames
  1782544796 511 byte frames                      0 Valid oversize frames
  2174814130 1023 byte frames                     0 System FCS error frames
  1101164053 1518 byte frames                     0 RxPortFifoFull drop frame
           0 Too large frames
           0 Good (1 coll) frames
           0 Good (>1 coll) frames

home-rs#show int GigabitEthernet1/0/14 coun
home-rs#show int GigabitEthernet1/0/14 counters er
home-rs#show int GigabitEthernet1/0/14 counters errors

Port        Align-Err    FCS-Err   Xmit-Err    Rcv-Err UnderSize
Gi1/0/14            0          0          0          0         0

Port      Single-Col Multi-Col  Late-Col Excess-Col Carri-Sen     Runts    Giants
Gi1/0/14           0         0         0          0         0         0         0
home-rs#

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не знаю в чем причина. Не хотите попробовать откатиться на 2.6.27?

 

то есть я правильно понимаю: выполняется 64К прерываний, система не перегружена, но пакеты теряются?

 

Кстати, а что это? MTU 9198 bytes

Изменено пользователем Dark_Angel

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.