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

Rate: 787817060 bits/sec, 121045 packets/sec; Avg 1 min: 798614394 bps, 122878 pps; 5 min: 802165019 bps, 123166 pps

 

почти максимум того, что мы обычно выбираем, нагрузка по ядрам 20-25%, раньше уже в районе 45-50 болталось, всем спасибо за помощь :)

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


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

ну вот, удалось теперь +100мбит сверху выжать, нагрузка те же 22-25%

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


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

кстати его дофига да, у нас очень любят торренты

Резать значит. Бордюру еще больше полегчает, в коннтраке кол-во "сессий" от него поубавится.

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


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

Только не догадайтесь резать на бордюре. Вообще выносите фаеры оттуда на брасы. Шейперы желательно тоже.

 

Если все настроите правильно, то вы загрузите двухпортовую 82576 полностью и еще на такую же останется.

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


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

Резать.... попробовать бы порезать на телесине 9924SP, оно вроде тоже умеет по содержимому пакета резать. NiTr0 а у вас есть актуальные правила для зарезки utp?

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


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

да кстати, это я не бордер тюнил) а типа браса - нат+шейпер железка, бордер у меня отдельный

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


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

Только не догадайтесь резать на бордюре. Вообще выносите фаеры оттуда на брасы.

Ничего страшного бордюру не будет, если там не тысячи правил в цепочке.

 

NiTr0 а у вас есть актуальные правила для зарезки utp?

В топике, посвященном ютп, отписал. 3 штуки их. Режется вроде все.

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


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

2 NiTr0: Немного оффтопика. Я за чистоту бордюров, то есть чем меньше правил, тем лучше. В идеале вообще нет. Чтобы не было ситуаций, когда одно из правил начинает выносить машину, и чтобы это выяснить надо тратить время и терпение клиентов. Ведь всё можно резать на брасах и им уж точно плохо не будет, т.к. их, если что, можно отключать не нарушая сервис.

 

Поэтому, когда я вижу рекомендации "та нормально", я немного негодую. Понятно, что 2-10 правил на бордере погоды не сделают, но зачем плодить бардак? Можешь зарезать на брасе - реж там. На бордере всегда удобнее резать, т.к. их один-два, а брасов может быть много и везде надо реплицировать. Только это, мне кажется, оправдание. Тот же торрент, надо резать на брасе или даже на аггрегации, если есть возможность. Или еще круче, прямо на доступе. Чем ближе тем лучше. Я вообще не вижу таких правил, которые надо поставить на брас и которые нельзя применить ближе к клиенту.

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

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


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

Коллеги, а подскажите и мне, раз уж пошла речь о брасах.

 

Имеем сервер на Xeon E5504 с двумя онбордными 82574L, выполняет чисто NAT'ирующую функцию.

 

Пропускает в час пик порядка 600Мбит/сек, загрузка процессоров 0,30,0,30% по каждому ядру, соответственно.

 

Проблема: по счётчикам "ethtool -S" и по atop наблюдаю дропы на внешнем интерфейсе, конкретно rx_missed_errors. Например:

 

 

root@bastinda:~# ethtool -S eth0|grep -Evw '0
NIC statistics:
	rx_packets: 43533795698
	tx_packets: 40682635325
	rx_bytes: 36303019460784
	tx_bytes: 30007943506604
	rx_broadcast: 46807
	tx_broadcast: 456439
	rx_multicast: 23
	tx_multicast: 6
	rx_errors: 6
	multicast: 23
	rx_crc_errors: 3
	rx_no_buffer_count: 4878
	rx_missed_errors: 398884271
	tx_restart_queue: 183
	tx_tcp_seg_good: 8404
	rx_long_byte_count: 36303019460784
	rx_csum_offload_good: 37211251049
	rx_csum_offload_errors: 781413
	tx_smbus: 456037
	rx_smbus: 46900

 

 

PRC | sys    0.07s | user   0.01s  |              | #proc 	92 | #trun      1  | #tslpi    94 |              | #tslpu 	0  | #zombie    0 | clones   0/s |           	| #exit    0/s |
CPU | sys   	0% | user      0%  | irq      61% |              | idle    339%  | wait      0% |              |           	| steal 	0% | guest 	0% | curf 2.00GHz  | curscal   ?% |
cpu | sys   	0% | user      0%  | irq      31% |              | idle 	69%  | cpu002 w  0% |              |           	| steal 	0% | guest 	0% | curf 2.00GHz  | curscal   ?% |
cpu | sys   	0% | user      0%  | irq      28% |              | idle 	72%  | cpu000 w  0% |              |           	| steal 	0% | guest 	0% | curf 2.00GHz  | curscal   ?% |
cpu | sys   	0% | user      0%  | irq   	0% |              | idle    100%  | cpu001 w  0% |              |           	| steal 	0% | guest 	0% | curf 2.00GHz  | curscal   ?% |
CPL | avg1    0.00 |           	| avg5    0.01 | avg15   0.05 |           	|              | csw    352/s |           	| intr 65435/s |              |           	| numcpu 	4 |
MEM | tot 	5.7G | free    4.3G  | cache 467.8M |              | dirty   0.0M  | buff  188.5M | slab  575.3M |           	|              |              |           	|              |
SWP | tot 	6.0G | free    6.0G  |              |              |           	|              |              |           	|              |              | vmcom  85.3M  | vmlim   8.8G |
NET | transport    | tcpi 	2/s  | tcpo 	2/s | udpi 	1/s | udpo   214/s  | tcpao    0/s | tcppo    0/s | tcprs    0/s  | tcpie    0/s | tcpor    0/s | udpnp    0/s  | udpip    0/s |
NET | network      | ipi 154305/s  | ipo 145947/s |              | ipfrw 15e4/s  | deliv    5/s |              |           	|              |              | icmpi    0/s  | icmpo    1/s |
NET | eth0 	54% | pcki 80028/s  | pcko 74122/s | si  544 Mbps | so  397 Mbps  | coll 	0/s |              | mlti 	0/s  | erri 	0/s | erro 	0/s | drpi  2082/s  | drpo 	0/s |
NET | eth1 	54% | pcki 74292/s  | pcko 71828/s | si  398 Mbps | so  542 Mbps  | coll 	0/s |              | mlti 	2/s  | erri 	0/s | erro 	0/s | drpi 	9/s  | drpo 	0/s |
NET | eth1.30  53% | pcki 74281/s  | pcko 71614/s | si  390 Mbps | so  539 Mbps  | coll 	0/s |              | mlti 	2/s  | erri 	0/s | erro 	0/s | drpi 	0/s  | drpo 	0/s |
NET | eth1.40   0% | pcki 	0/s  | pcko   213/s | si    0 Kbps | so 2566 Kbps  | coll 	0/s |              | mlti 	0/s  | erri 	0/s | erro 	0/s | drpi 	0/s  | drpo 	0/s |

 PID      RUID          EUID            THR   	SYSCPU        USRCPU   	VGROW        RGROW   	RDDSK        WRDSK      ST   	EXC      S   	CPUNR   	CPU   	CMD        1/1
  12      root          root              1        0.03s     	0.00s          0K       	0K          0K       	0K      --     	-      S       	2        1%   	kworker/2:0
   3      root          root              1        0.02s     	0.00s          0K       	0K          0K       	0K      --     	-      S       	0        0%   	ksoftirqd/0
30118      root          root              1        0.01s     	0.00s          0K       	0K          0K       	0K      --     	-      R       	1        0%   	atop
5054      dyr       	dyr           	1        0.00s     	0.01s          0K       	0K          0K       	0K      --     	-      S       	1        0%   	sshd
  13      root          root              1        0.01s     	0.00s          0K       	0K          0K       	0K      --     	-      S       	2        0%   	ksoftirqd/2
6242      snmp          snmp              1        0.00s     	0.00s          0K       	0K          0K       	0K      --     	-      S       	0        0%   	snmpd

 

 

 

 

Ринги на сетевухах увеличены до 4К, остальной sysctl-тюнинг:

 


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=2000
net.ipv4.tcp_max_syn_backlog=1024
net.core.somaxconn=262144

 

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

 

 

Драйвер в ядре, так что с InterruptRate и прочими параметрами подгрузки модуля поиграться, увы, не могу.

 

 

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

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


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

Сетевки слабые, наблюдал такие же дропы на NASах с такими бортовыми сетевками, замена на PT на одном сервере и на ET на втором проблемы полностью устранила.

Можно попробовать net.core.netdev_max_backlog увеличить, потерь станет меньше.

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

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


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

Присоединяюсь к kayot, кроме того можно из средств реанимации попробовать увеличить количество прерываний, чтобы рагребался буфер быстрее. Да, прийдется дергать драйвер. Все эти меры, включая backlog дадут больше нагрузки, естессно.

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


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

ОК, попробую другие сетёвки. Ну а пока - как увеличивать количество прерываний? :) И не поможет ли отключение GSO,TSO и прочих сетевушных "разгружателей процессора"?

 

 

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


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

Проблема: по счётчикам "ethtool -S" и по atop наблюдаю дропы на внешнем интерфейсе, конкретно rx_missed_errors.

Дело явно не в картах:

# lspci | grep -i eth
01:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
01:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
04:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

 

Настройка:

# cat /etc/modprobe.d/e1000e
options e1000e IntMode=1,1,1,1 InterruptThrottleRate=1,1,1,1

 

Результат:

# grep -i eth /proc/interrupts
33: 2576662878        120        134        128   PCI-MSI-edge      eth2
34:          8  103709084          4          7   PCI-MSI-edge      eth3
35:          3          3 1220635003          5   PCI-MSI-edge      eth0
36:          3          3          6 1834568772   PCI-MSI-edge      eth1

# ethtool -S eth0|grep -Evw '0'
NIC statistics:
    rx_packets: 28930332871
    tx_packets: 17328725769
    rx_bytes: 14025179602651
    tx_bytes: 16844180841233
    rx_broadcast: 9736
    tx_broadcast: 2
    rx_multicast: 15494
    tx_multicast: 15645
    rx_errors: 124
    multicast: 15494
    rx_length_errors: 31
    rx_crc_errors: 70
    rx_no_buffer_count: 81676
    rx_missed_errors: 14613
    rx_short_length_errors: 31
    tx_tcp_seg_good: 1
    tx_flow_control_xon: 30585
    tx_flow_control_xoff: 40482
    rx_long_byte_count: 14025179602651
    rx_csum_offload_good: 25871861414
    rx_csum_offload_errors: 35721

# uname -a
Linux border.oblnet.ru 2.6.32-std-ng-alt13 #1 SMP PREEMPT Thu May 13 23:07:39 UTC 2010 x86_64 GNU/Linux

 

На портах коммутатора ошибки есть?

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


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

Это Вы отписываетесь уже по своей проблеме или Вы вместе с Dur?

 

В любом случае у вас

rx_no_buffer_count: 81676, что говорит о маленьком кольце или о недостаточном количестве прерываний на карту.

 

На коммутаторе будет видно ошибки CRC ну и про буфер тоже, если включен flow control, который обычно для бордеров отключают. Всё остальное не видно. А если патчкорд битый, то проблемы видно и невооруженным глазом.

 

Но вообще, сумма ваших всех ошибок по приему пакетов - это 0.000003333% от общего числа принятых пакетов. Овчинка выделки не стоит.

 

А вот у Dur ошибок достаточно много.

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

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


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

Это Вы отписываетесь уже по своей проблеме

У меня конфигурация очень похожая, но проблемы нет, хотя нагрузка выше.

 

или Вы вместе с Dur?

Пока(?) нет.

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


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

Всё очень условно. Ни версии драйверов, ни ядра Dur не указал. Процессор не указали Вы, при этом у вас обоих автоматическая модерация прерываний. Но и это не все отличия. У вас 4 сетевые, у него 2.

 

То есть формально всё похоже, а на практике куча различий, которые могут давать такой еффект. Кроме того, важно понять: пока у карты буфер не начал переполняться, ошибок вообще не будет. А потом они резко полезут, хотя трафика стало не на много больше. Ведь не ясно, как у вас выходящий трафик распределяется между указанными сетевыми.

 

Вообщем я бы не брался сравнивать. 82571L - это бюджетная сетевая за 10$, соответственно чтобы она проглотила 1 гиг - её надо пилить. Именно отсюда пожелание поменять сетевую. После смены ничего делать нужно не будет.

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

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


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

Процессор не указали Вы

Intel Core i3-530.

На 650+250mbps и 80+70kpps загружен на 45+5+50+15%.

 

82571L - это бюджетная сетевая за 10$

Почти угадали :) Это внешняя двухпортовая Intel/PT, купленная пару лет назад за $200.

Бюджетная за $10 - это скорее встроенная 82579V.

 

соответственно чтобы она проглотила 1 гиг - её надо пилить.

Единственное, чего в 571 нет по сравнению с 574 - MSI-X.

Всё остальное - MSI, Throttling, Interrupt moderation - есть и работает.

Гигабит реального трафика пропускает без малейших проблем.

 

Именно отсюда пожелание поменять сетевую.

Смотрите внимательнее - Dyr уже использует 82574, не должно с ними быть никаких проблем.

У меня нормально работают и набортные 574, и внешние 571.

 

В любом случае у вас

rx_no_buffer_count: 81676, что говорит о маленьком кольце или о недостаточном количестве прерываний на карту.

Буфер на всех картах установлен в максимум = 4096.

Прерываниями занимаются throttling и interrupt moderation.

80k потерь на 28 миллиардов пакетов - в пределах статпогрешности.

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


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

Илья, ошибок со стороны коммутатора нет:

 

home-rs# show interfaces Gi1/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/em0
 MTU 9198 bytes, BW 1000000 Kbit, DLY 10 usec,
	reliability 255/255, txload 120/255, rxload 90/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 46w5d
 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 354639000 bits/sec, 58880 packets/sec
 5 minute output rate 473946000 bits/sec, 68522 packets/sec
	1508406710 packets input, 2653600802 bytes, 0 no buffer
	Received 26799590 broadcasts (0 multicast)
	0 runts, 0 giants, 0 throttles
	1 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
	0 watchdog, 26313614 multicast, 0 pause input
	0 input packets with dribble condition detected
	829579646 packets output, 2307809862 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
  1426515275 Bytes       				3394905282 Bytes
   535880314 Unicast frames              3649659606 Unicast frames
     4219122 Multicast frames              36352055 Multicast frames
	32162924 Broadcast frames                486123 Broadcast frames
           0 Too old frames   			673728227 Unicast bytes
           0 Deferred frames 			2690065866 Multicast bytes
           0 MTU exceeded frames   		31112411 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          1986087741 Minimum size frames
           0 8 collision frames          1627407153 65 to 127 byte frames
           0 9 collision frames          1120935096 128 to 255 byte frames
           0 10 collision frames 		3494211064 256 to 511 byte frames
           0 11 collision frames 		1712178364 512 to 1023 byte frames
           0 12 collision frames 		2335611945 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
  2562741856 64 byte frames       				0 Valid frames, too small
  1901216238 127 byte frames
  3088125248 255 byte frames                      0 Too old frames
   914523457 511 byte frames                      0 Valid oversize frames
  1145411520 1023 byte frames     				0 System FCS error frames
  3845145929 1518 byte frames     				0 RxPortFifoFull drop frame
           0 Too large frames
           0 Good (1 coll) frames
           0 Good (>1 coll) frames

home-rs# show interfaces Gi1/0/14 counters errors

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

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

 

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

 

 

Dark_Angel, "сетевые" прерывания привязаны вручную к каждому из ядер.

 

root@bastinda:~# cat /proc/interrupts |grep -Ew '4[0-5]'
40: 3647383392    7784534          0          0   PCI-MSI-edge      ▒▒▒▒
41:   59293525 3107213716          0          0   PCI-MSI-edge      ▒▒▒▒
42:  126967677      24689          0          0   PCI-MSI-edge      eth0
43:   57560231          0 3924334140          0   PCI-MSI-edge      ▒▒▒▒
44:   74575469          0     	41 1132824369   PCI-MSI-edge      ▒▒▒▒
45: 	493012          0          0   	6607   PCI-MSI-edge      eth1

root@bastinda:~# cat /proc/irq/4[0-5]/smp_affinity
01
02
02
04
08
08



Не равномерно, поскольку привязал не сначала, успела накопиться статистика.

 

Да, и ещё мелочь, но странная - имя девайса в статистике по прерываниям показывается почему-то псевдосимволами.

 

 

 

 

Версии ядра и драйверов:

 


root@bastinda:~#uname -a
Linux bastinda 2.6.38.8-nat #2 SMP Fri Oct 21 19:15:27 MSK 2011 x86_64 x86_64 x86_64 GNU/Linux


root@bastinda:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 11.04
Release:        11.04
Codename:   	natty

root@bastinda:~# ethtool -i eth0
driver: e1000e
version: 1.2.20-k2
firmware-version: 1.8-0
bus-info: 0000:01:00.0

 

Конфиг ядра на pastie.

 

 

 

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

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


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

Dyr, Попробуйте

ethtool -C eth0 rx-usecs 33

и менять этот параметр 1,2,3 и т.д.

 

Тлько осторожно, при неудачном совпадении обстоятельств может перегрузить тазик или повесить, включите какой-нить ватчдог и авторебут.

У меня правда не падало :-)

 

Но думаю дело не в этом.

Сколько у вас суммарно правил в iptables? (nat+mangle+filter)

 

Кстати смущает, что у вас по статистике очень много 64байт пакетов (если конечно счетчики не переполняются).

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


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

Количество правил:

 

root@bastinda:~# cat /etc/iptables/config | grep -c NAT


494
root@bastinda:~# cat /etc/iptables/config | grep -vc NAT
37

 

Используется ipset. Большое количество NAT правил обусловлено выдачей 256 внешних ip-адресов на сетки /23 и ещё часть на binat. Большое количество мелких пакетов в статистике, думаю, обусловлено моим же собственным тестирование с помощью совершенно аццкой Mausezahn ;) Впрочем, я обнулю статистику и посмотрю.

 

Выставление rx-usecs в 1 (что, насколько я понимаю, означает выставление InterruptThrottleRate в dynamic) дропы не убирает (хотя вроде их уменьшает).

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

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


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

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

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


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

Процессор не указали Вы

Intel Core i3-530.

На 650+250mbps и 80+70kpps загружен на 45+5+50+15%.

 

Круто, но у человека Ксеон. Я не против что Ваш проц похож, прожевывает такой же трафик, но он другой. Как можно так сравнивать? Мать другая соответственно. Я абслютно уверен, что переполнение буфера и ошибки возникают из-за малого количества прерываний. Плавал уже. У вас система позволяет их делать больше - потерь нет и всё круто. Там не позволяет делать сколько надо - будут ошибки.

 

82571L - это бюджетная сетевая за 10$

Почти угадали :) Это внешняя двухпортовая Intel/PT, купленная пару лет назад за $200.

Бюджетная за $10 - это скорее встроенная 82579V.

 

Да, прошу прощения, я ошибся в цифре и неверно написал. Имелась ввиду 82574L, 82751 - EB же.

 

соответственно чтобы она проглотила 1 гиг - её надо пилить.

Единственное, чего в 571 нет по сравнению с 574 - MSI-X.

Всё остальное - MSI, Throttling, Interrupt moderation - есть и работает.

Гигабит реального трафика пропускает без малейших проблем.

 

82566DM - тоже имеет все эти фичи и стоит 10 баксов. Начинает ронять пакеты при 500-600 Мбит трафика на дефолтных настройках. На не дефолтных можно прогнать гигабит дуплексом. Вот только скажите, сколько стоит то время, чтобы так настроить систему и сколько стоит нормальная сетевая, скажем тот же 82575EB который на дефолте всё это сделает?

 

Так что MSI, Throttling, Interrupt moderation - не залог успеха.

 

Именно отсюда пожелание поменять сетевую.

Смотрите внимательнее - Dyr уже использует 82574, не должно с ними быть никаких проблем.

У меня нормально работают и набортные 574, и внешние 571.

 

Я не против, что на 82754 можно прокачать гигабит, но нужно поработать напильником. Кроме того, возможна ситуация, когда система не сможет выгребать буфер карты настолько часто, насколько это нужно, чтобы он не переполнялся, т.к. с этим связаны накладные расходы. В вашем случае система мощная или настроена так, что успевает. У Dur, видимо, драйвер решает, что больше прерываний не надо. Поэтому я и говорил избавиться от дефолтовой модерации.

 

В любом случае у вас

rx_no_buffer_count: 81676, что говорит о маленьком кольце или о недостаточном количестве прерываний на карту.

Буфер на всех картах установлен в максимум = 4096.

Прерываниями занимаются throttling и interrupt moderation.

80k потерь на 28 миллиардов пакетов - в пределах статпогрешности.

 

Я по поводу ваших характеристик сказал, что у вас всё ок. Насчет прерываний автоматом я уже говорил: бывает, что на дефолте драйвер правильно видит паттерн трафика, и подбирает количество прерываний. А бывает, что не правильно. Вам повезло, а Dur - нет.

 

Версии ядра и драйверов:

 

Вы используете относительно новое ядро. Данная версия драйвера уже есть 1.6.х. Стоит обратить на неё внимание. Ну и по-моему вкомпиливание драйвера в ядро - это лишнее. Никакого выиграша это не дает, зато чтобы обновить драйвер надо пересобирать ядро и перегружать машину. Не фонтан.

 

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

 

Если бы упиралось в iptables - ядро бы сидело в топе, нашим любимым ksoftirqd. На сколько я понял - это не наблюдается, соответственно пакеты теряются еще до ядра.

 

rx-usecs это interrupt_rate в минус первой

 

Верно, но, Dur, обратите внимание, что 1,2,3 - это те же режимы модерации, что и параметры для драйвера ITR, остальные значения - это статическое количество прерываний на очередь.

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


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

Dark_Angel, про ITR да, понял. 1 не помогает (или помогает, но слабо), 2 просто не выставить, а 3 ("dynamic conservative") - не пробовал, но сомневаюсь в необходимости.

 

Сейчас трафик минимален (30 kpps), rx-usecs выставлен в 1, потери всё равно есть (за минуту набежало 4 445 rx_missed_errors, то есть 74 ошибки в секунду, или примерно каждый 400-ый пакет).

 

 

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


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

Поэтому я и говорю: прибивайте прерывания статикой и смотрите, успевает ли система. Чтобы начать, расчитайте количество прерываний так, чтобы размер пакетов в буфере на момент прерывания было в 2 раза меньше размера буфера. Ну и дальше танцуйте - больше/меньше. Максимум 100К прерываний в секунду на очередь.

 

Желаю Вам приятно провести время.

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


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

Join the conversation

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

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

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

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

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

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

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