LINUX.ORG.RU
ФорумAdmin

Debian + Dlink528 = распределение потоков по ядрам CPU

 , ,


0

1

Доброго времени суток!

Коллеги, подскажите куда копать.

Дано: имеется 2 офисных ПК, соединяющие каждый 2 сети по 1Гбиту каждая. Компьютеры территориально располагаются в разных местах и вообще не связаны друг с другом. Трафик между сетями бегает иногда очень хороший, и черт меня дернул полезть посмотреть статистику по прерываний на каждом ядре процессора.

ПК1: 2-ядерный AMD, 2 сетевые Dlink-528

root@bridge1:~# cat /proc/interrupts
           CPU0       CPU1
 20: 1269527528 3683840560   IO-APIC-fasteoi   eth1
 41:  299804805  669220486   PCI-MSI-edge      eth0

ПК2: 2-ядерный Intel, 1 сетевая Dlink-528, 2 сетевая встроенная Intel 52566DC

root@bridge2:~# cat /proc/interrupts
           CPU0       CPU1
 21: 1205572496          0   IO-APIC-fasteoi   uhci_hcd:usb4, i801_smbus, eth0
 45:  551609429          0   PCI-MSI-edge      eth1

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

На обоих ПК, используется стандартный драйвер r8169 2.3LK-NAPI. В случае с сетевой Intel драйвер e1000e 2.3.2-k.

На обоих мостах

# cat /proc/irq/<IRQ_NUM>/smp_affinity
3
# cat /proc/irq/<IRQ_NUM>/smp_affinity_list
0-1
идентичны для всех прерываний сетевых карт.

Биос? Дефолтовый. Разница в инструкциях процессоров?

Может ли это быть связано с тем, что несколько устройств на одном прерывании № 21 на проблемном втором мосту?

Буду признателен любой информации.

Спасибо!



Последнее исправление: dev-ice (всего исправлений: 1)

man 1 irqbalance.

А вообще, если считаешь, что сеть упирается в интеррапты - выкидывай какаху и покупай серверные Штеуд про1000.

svr4
()
Ответ на: комментарий от svr4

Купит серверные Штеуды каждый может. Здесь дело принципа - понять в чем разница и где собака покопалась

dev-ice
() автор топика
Ответ на: комментарий от dev-ice

*пожал плечами* Аффинити развешать по разным ядрам для разных сетевух -не?

Про irqbalance уже выше писал.

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

Алсо, если там «бегает хороший трафик» (по медяшке... воткнутой в сетевуху на голимый писиай) - это уже повод задуматься над адекватностью схемы. Т.к. пятая категория без шилда (при «территориальной удалённости») в принципе не может выдать этот заявленный гигабит. Для гигабита нужна FFTP 6, которая стоит втрое дороже оптики и аренды сварочника. Можно заменить двумя П296, но во-первых, если это в здании - он не влезет в кабель-канал, а во-вторых стоит он ещё больше, если покупать, а не воровать.

svr4
()
Последнее исправление: svr4 (всего исправлений: 4)

гм. ну и что такого?

У тебя ядро обслуживающее 2 сетевушки больше чем на 80% занято обработкой irq & sirq ?

на irq+sirq < 50% я бы вообще не обращал внимание.

Единственная реальная проблема, что на DLINK DGE-528 который PCI 32/33 гигабита нет и не будет. 800 Мбит максимум. Дальше оно упирается в шину.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel

800 Мбит хорошо, там нет больше 500 Мбит канала.

я развешал прерывания по ядрам - не вопрос, одна сетевушка рабтает на первом ядре, вторая - на втором. Дело не в этом. Мне не понятно, почему при идентичных настройках 2-х серверов, без предустановленного irqbalance на 1 сервере каждая сетевая обрабатывается обоими ядрами, а на 2 сервере - либо обе сетевые на 1 ядре или как я их раскидаю, но никогда не работаю оба ядра для каждой сетевушки.

dev-ice
() автор топика
Ответ на: комментарий от vel

система простаивает 99.5-100 % idle. sys изредка поднимается до 0.3 % даже в пиковых нагрузках.

dev-ice
() автор топика
Ответ на: комментарий от svr4

я вам более того скажу, я генерировал для 2-х Длинков трафик около 1 Гигабита, было около 880 kpps в пике при загруженности системы на 17% и не смог больше, потому что мои десктопы уперлись как раз в медные ограничения о которых вы говорите. Так что мне непонятно высказывание vel насчет 800Мбит. Сетевые DLink очень даже мощные, а если вы посмотрите как активно дорабатывается драйвер r8169 от ядра к ядру, то поймете , что вы данные сетевые по просту недооценили.

Но это оффтоп.

dev-ice
() автор топика
Ответ на: комментарий от dev-ice

почему при идентичных настройках 2-х серверов, без
предустановленного irqbalance

У них разные контроллеры прерываний. Есть контроллеры, которые умеют размазать прерывание по всем ядрам, а есть такие, которым изначально надо irqbalance. В основном, irqbalance требуется новым.

AS ★★★★★
()
Ответ на: комментарий от dev-ice

Там не 8169, но какаха примерно того же уровня.

Кстати, для того же 8139 (с 1997 года тарахтит на ста мегабитах) до сих пор толком нет mmio. Потому что pio работает лучше. Чип такой, щито поделать.

svr4
()
Ответ на: комментарий от AS

ага спасиб, попробую установить irqbalance, отпишусь.

dev-ice
() автор топика

То, чем ты занимаешься - это оверинжиниринг.

Для скоростей ниже 10Гбит в сетевой подсистеме (на железе не старше лет 5) не нужно тюнить абслютно нихрена - оно и так работает.

А то, что прерывания дрочатся по двум разным ядрам - это скорее плохо, чем хорошо - постоянная смена контекста и так далее. Если бы твои сетевухи умели несколько очередей приема-отправки, тогда бы их (очереди эти) имело смысл расталкивать по разным ядрам.

blind_oracle ★★★★★
()
Ответ на: комментарий от dev-ice

8169 активно пилят? Ха! Туда просто добавляют поддержку новых сетевух от реалтека. Там 1 драйвер на все сетевые карты с реалтековскими чипами.

Сетевые карты на реалтековских чипах всегда были десктопные: дающих приличную нагрузку на CPU, без аппаратной поддержки vlan-ов, без gso/lro/tso и других полезных вкусностей.

На обычном PCI 32/33 до 800Мбит на прием протоколом tcp и на передачу до 600Мбит (без conntrack & iptables которые съедали 10-15% скорости). Но это сферический конь в вакууме. На практике было до 700/550 RX/TX.

Прием работает быстрее т.к. есть аппаратная проверка КС

vel ★★★★★
()
Ответ на: комментарий от blind_oracle

согласен. заказать железки не проблема. Я в принципе разобрался что к чему - Материнка на втором мосту старая, 2007 года, раскидал сетевые по ядрам и не стал заморачиваться. Видимо, как заметил предыдущий коллега, не все чипсеты могут раскидывать 1 устройство сразу по всем ядрам. Для заметки - мамка на Первом мосту ASRock FM2A55M-VG3+ (2012 г.). Мамка на Втором проблемном мосту Intel DG965WH (2007 г.).

Тюнил по редхатовскому и интеловскому мануалу на тему Assigning Interrupts to Processor Cores, коих в инете вагон.

Спасибо всем кто был в теме!

dev-ice
() автор топика
Ответ на: комментарий от vel

там больше не надо. Сейчас посматриваем в сторону 82575/82576 чипсетов. Но что то мне подсказывает, существующих железок хватит за глаза.

dev-ice
() автор топика
Ответ на: комментарий от svr4

irqbalance погоды не сделал, не зависимо от передаваемых ему параметров при старте

dev-ice
() автор топика
Ответ на: комментарий от vel

У меня на одном из домашних «роутеров» был реалтек встроенный, пока его молнией не угробило так что он даже с pci-e шины пропал. Так вот, отличная сетевуха, в общем. Разницы с текущим 4-портовым интелем 82580 особо не вижу на моих скоростях. Нагрузка на проц (i5 3570t) незаметна.

Раньше, во времена 8139 реалтеки были капризны, да, но сейчас я бы не был так категоричен.

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

оно, поинимаешь, заметно, когда kpps переваливает за сотню-другю, домашняя сеть никогда не нагрузит роутер обилием маленьких пакетов

dev-ice
() автор топика
Ответ на: комментарий от dev-ice

А я и говорю про домашнюю сеть. В продакшене реалтек мне в голову не придёт юзать.

blind_oracle ★★★★★
()
Последнее исправление: blind_oracle (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.