foreverok 95 Опубликовано: 2016-03-30 19:19:18 Share Опубликовано: 2016-03-30 19:19:18 (відредаговано) Имеется NAS на CentOS release 6.7 (Final), ядро 3.10.80, сетевые Ethernet controller: Intel Corporation 82580 Gigabit Fiber Network Connection (rev 01). accel-ppp-1.9.0 терминирует PPPoE и PPTP. 8 комбинированных очередей TxRx. Прерывания раскинуты по ядрам. cat /proc/interrupts | grep igb0 46: 0 0 0 0 0 0 0 0 PCI-MSI-edge igb0 47: 3681205889 50048953 50029181 50047552 50036376 50035311 49712369 3536645 PCI-MSI-edge igb0-TxRx-0 48: 219271596 2486502926 219196088 219174340 219155134 219342744 218315017 8599117 PCI-MSI-edge igb0-TxRx-1 49: 49541202 49564067 3438797244 49581141 49567721 49551820 49312647 3497787 PCI-MSI-edge igb0-TxRx-2 50: 50308046 50330700 50304861 3547024542 50333286 50305789 50061946 3523822 PCI-MSI-edge igb0-TxRx-3 51: 50344026 50356494 50342528 50380676 3505792337 50340448 50090666 3541274 PCI-MSI-edge igb0-TxRx-4 52: 49138509 49172907 49156121 49171407 49154017 3590379958 48913366 3440452 PCI-MSI-edge igb0-TxRx-5 53: 50352666 50379452 50371972 50384448 50382185 50358444 3488944827 3523133 PCI-MSI-edge igb0-TxRx-6 54: 48432785 48448748 48424295 48463658 48451977 48426345 48159713 2872785078 PCI-MSI-edge igb0-TxRx-7 Проблема в распределении Tx пакетов. Почти все пакеты попадают в tx_queue_1 ethtool -S igb0 | grep tx | grep packets tx_packets: 228382405263 tx_queue_0_packets: 32612151 tx_queue_1_packets: 228135401120 tx_queue_2_packets: 36839517 tx_queue_3_packets: 35262224 tx_queue_4_packets: 36911828 tx_queue_5_packets: 33273054 tx_queue_6_packets: 32876886 tx_queue_7_packets: 39228483 При этом с Rx все нормально ethtool -S igb0 | grep rx | grep packets rx_packets: 315411770721 rx_queue_0_packets: 39698105729 rx_queue_1_packets: 39411188725 rx_queue_2_packets: 39358073581 rx_queue_3_packets: 39463342718 rx_queue_4_packets: 39405329904 rx_queue_5_packets: 39551789194 rx_queue_6_packets: 39401547446 rx_queue_7_packets: 39122381986 Интерфейс igb0 смотрит в интернет, на нем 2 VLAN. На интерфейсе igb1 та же ситуация, на нем 256 VLAN (здесь accel-ppp). Непонятно почему исходящие пакеты не распределяются равномерно по очередям? Куда копать? Відредаговано 2016-03-30 19:26:09 foreverok Ссылка на сообщение Поделиться на других сайтах
l1ght 377 Опубліковано: 2016-03-31 00:39:12 Share Опубліковано: 2016-03-31 00:39:12 да ручками прерывания прибит к ядрам и делов то) Ссылка на сообщение Поделиться на других сайтах
foreverok 95 Опубліковано: 2016-03-31 05:03:48 Автор Share Опубліковано: 2016-03-31 05:03:48 (відредаговано) да ручками прерывания прибит к ядрам и делов то) Это сделано, о чем я написал сразу echo 01 > /proc/irq/47/smp_affinity echo 02 > /proc/irq/48/smp_affinity echo 04 > /proc/irq/49/smp_affinity echo 08 > /proc/irq/50/smp_affinity echo 10 > /proc/irq/51/smp_affinity echo 20 > /proc/irq/52/smp_affinity echo 40 > /proc/irq/53/smp_affinity echo 80 > /proc/irq/54/smp_affinity Відредаговано 2016-03-31 05:06:38 foreverok Ссылка на сообщение Поделиться на других сайтах
l1ght 377 Опубліковано: 2016-03-31 11:24:53 Share Опубліковано: 2016-03-31 11:24:53 да меня смутила картина cat /proc/interrupts | grep igb0 ожидал увидеть нечто похожее 65: 34309 1 0 0 PCI-MSI-edge eth0-TxRx-0 66: 0 25596 1 1 PCI-MSI-edge eth0-TxRx-1 67: 1 1 168587 0 PCI-MSI-edge eth0-TxRx-2 68: 0 0 1 31182 PCI-MSI-edge eth0-TxRx-3 Ссылка на сообщение Поделиться на других сайтах
foreverok 95 Опубліковано: 2016-03-31 13:32:17 Автор Share Опубліковано: 2016-03-31 13:32:17 (відредаговано) Там счетчики еще с того момента, когда они свободно гуляли по ядрам. В общем похоже проблема в стандартной дисциплине mq. tc -s -d class show dev igb0 class mq :1 root Sent 4248819500 bytes 32806685 pkt (dropped 0, overlimits 0 requeues 1785) backlog 0b 0p requeues 1785 class mq :2 root Sent 70099802402310 bytes 1550251209 pkt (dropped 19391, overlimits 0 requeues 10021965) backlog 0b 0p requeues 10021965 class mq :3 root Sent 4784327130 bytes 37032812 pkt (dropped 0, overlimits 0 requeues 1988) backlog 0b 0p requeues 1988 class mq :4 root Sent 4690785532 bytes 35456978 pkt (dropped 0, overlimits 0 requeues 2182) backlog 0b 0p requeues 2182 class mq :5 root Sent 4546919954 bytes 37108307 pkt (dropped 0, overlimits 0 requeues 2000) backlog 0b 0p requeues 2000 class mq :6 root Sent 4352457687 bytes 33484935 pkt (dropped 0, overlimits 0 requeues 1691) backlog 0b 0p requeues 1691 class mq :7 root Sent 4273704762 bytes 33073391 pkt (dropped 0, overlimits 0 requeues 1612) backlog 0b 0p requeues 1612 class mq :8 root Sent 4629802846 bytes 39471512 pkt (dropped 0, overlimits 0 requeues 2661) backlog 0b 0p requeues 2661 А решение: tc qdisc add dev eth0 root handle 1: multiq И раскинуть фильтрами по очередям. Осталось только нужные фильтры подобрать что бы раскинуть трафик по очередям. Взял тут https://www.kernel.org/doc/Documentation/networking/multiqueue.txt Відредаговано 2016-03-31 13:41:36 foreverok Ссылка на сообщение Поделиться на других сайтах
KaYot 3 708 Опубліковано: 2016-03-31 15:34:13 Share Опубліковано: 2016-03-31 15:34:13 Врядли это оно. По крайней мере к tx_queue оно не относится, там драйвер рулит распределением трафика и похоже делает это сугубо по dst mac. Да и с сами multiq есть вопросы, это ж получатся отдельные инстансы для шейпера со всеми вытекающими приколами. Ссылка на сообщение Поделиться на других сайтах
foreverok 95 Опубліковано: 2016-03-31 17:45:50 Автор Share Опубліковано: 2016-03-31 17:45:50 (відредаговано) Оно. Добавил график в заббикс. Что бы визуально видеть изменения. Данные снимаются через ethtool В итоге получил следующую картину: Не идеально конечно. Но уже лучше. Відредаговано 2016-03-31 17:46:43 foreverok Ссылка на сообщение Поделиться на других сайтах
NiTr0 584 Опубліковано: 2016-04-05 08:26:55 Share Опубліковано: 2016-04-05 08:26:55 PPPoE BRAS? юзайте RPS. Ссылка на сообщение Поделиться на других сайтах
foreverok 95 Опубліковано: 2016-04-05 10:07:52 Автор Share Опубліковано: 2016-04-05 10:07:52 PPPoE/PPTP проблема наблюдалась как на внутреннем интерфейсе так и на внешнем только с TX . C RX очередями все ровно. Что то не нашел тут ничего про TX. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/network-rps.html удалось разрулить как писал выше через tc multiq Ссылка на сообщение Поделиться на других сайтах
NiTr0 584 Опубліковано: 2016-04-05 16:50:28 Share Опубліковано: 2016-04-05 16:50:28 tx - по идее грабли быть не должно. да и вообще нагрузка от него окологнулевая, и отдельные rx/tx очереди обычно не используют. rx - все падает в одну очередь т.к. сетевуха смотрит по фиксированному смещению на ip, а там - PPPoE header. очень странно что смена дисциплины повлияла на то, как сетевуха сортирует пакеты. Ссылка на сообщение Поделиться на других сайтах
foreverok 95 Опубліковано: 2016-04-06 05:25:10 Автор Share Опубліковано: 2016-04-06 05:25:10 (відредаговано) Еще раз говорю, с RX все ок ethtool -S igb0 | grep rx | grep packets rx_packets: 330764836530 rx_queue_0_packets: 41641938982 rx_queue_1_packets: 41324756652 rx_queue_2_packets: 41284168751 rx_queue_3_packets: 41376661849 rx_queue_4_packets: 41290403953 rx_queue_5_packets: 41482067750 rx_queue_6_packets: 41332238092 rx_queue_7_packets: 41032589069 А вот Tx : ethtool -S igb0 | grep tx | grep packets tx_packets: 239368064948 tx_queue_0_packets: 1354117513 tx_queue_1_packets: 231581877249 tx_queue_2_packets: 1148038306 tx_queue_3_packets: 1064090349 tx_queue_4_packets: 1048531361 tx_queue_5_packets: 1054769623 tx_queue_6_packets: 1056601340 tx_queue_7_packets: 1060039209 Відредаговано 2016-04-06 05:26:13 foreverok Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас