Равномерная загрузка ядер процессора по сетевым интерфейсам

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

roleg
Сообщения: 38
ОС: ALT Linux 4

Равномерная загрузка ядер процессора по сетевым интерфейсам

Сообщение roleg »

Собственно САБЖ. Необходимо равномерно распределить загрузку с сетевых интерфейсов на все ядра процессора.
ALTLinux Server 4.0.1 (ядро 2.6.18-imq-pae-alt9) 2 процессора по 4 ядра, 2 сетевых Гбит интерфейса.
С помощью irqbalance удалось распределить нагрузку eth0->core1, eth1->core2. На аналогичной Desktop системе с тем же ядром загрузка по умолчанию распределяется по всем ядрам.
Кто сталкивался или знает как включить прошу отписатся в тему.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Равномерная загрузка ядер процессора по сетевым интерфейсам

Сообщение rm_ »

Для наглядности, приведите cat /proc/interrupts с обоих машин, предварительно понагружав чем-нибудь оба сетевых интерфейса на них.
Спасибо сказали:
roleg
Сообщения: 38
ОС: ALT Linux 4

Re: Равномерная загрузка ядер процессора по сетевым интерфейсам

Сообщение roleg »

ALT Server

Код: Выделить всё

           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7
  0:      21207      25010    3071065    3157763    3068618    3068607    3094848    3066078    IO-APIC-edge  timer
  6:          3          0          0          0          0          0          0          0    IO-APIC-edge  floppy
  7:          0          0          0          0          0          0          0          0    IO-APIC-edge  parport0
  8:          1          0          0          0          0          0          0          0    IO-APIC-edge  rtc
  9:          1          0          0          0          0          0          0          0   IO-APIC-level  acpi
 14:         61          0          0          0          0          0          0          0    IO-APIC-edge  ide0
 50:  245525715      22654          0          0          0          0          0          0         PCI-MSI  eth0
 58:         28  216809926          0          0          0          0          0          0         PCI-MSI  eth1
169:          0          0          0          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb4
177:          0          0          0          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb3
185:          0          0          0          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb1, ehci_hcd:usb5


ALT Desktop

Код: Выделить всё

           CPU0       CPU1       CPU2       CPU3
  0:         38          0          0          0   IO-APIC-edge      timer
  1:          2          2          3          3   IO-APIC-edge      i8042
  3:          1          0          0          1   IO-APIC-edge
  4:          2          1          1          1   IO-APIC-edge      serial
  8:          1          0          1          1   IO-APIC-edge      rtc
  9:          0          0          0          0   IO-APIC-fasteoi   acpi
 14:          0          0          0          0   IO-APIC-edge      ata_piix
 15:          0          0          0          0   IO-APIC-edge      ata_piix
 16:          0          0          0          0   IO-APIC-fasteoi   uhci_hcd:usb1
 17:          0          0          0          0   IO-APIC-fasteoi   mach64@pci:0000:01:0c.0
 18:      39361      39714      39358      39580   IO-APIC-fasteoi   ata_piix, uhci_hcd:usb3
 19:         19         20         23         18   IO-APIC-fasteoi   uhci_hcd:usb2
 23:          0          1          1          0   IO-APIC-fasteoi   ehci_hcd:usb4
 24:  271428086  271471065  271659684  271534706   IO-APIC-fasteoi   eth0
 25:  261882821  261937761  261791828  261807346   IO-APIC-fasteoi   eth1
 26:  144825481  144802057  144783559  144814235   IO-APIC-fasteoi   eth2
 27:   36255564   36226759   36219923   36233219   IO-APIC-fasteoi   eth3
 48:   96621835   96617483   96581229   96618007   IO-APIC-fasteoi   eth6
 49:  114007300  113985100  113996492  114019519   IO-APIC-fasteoi   eth7
 50:   61870638   61865217   61866131   61875631   IO-APIC-fasteoi   eth8
 51:          1          1          2          1   IO-APIC-fasteoi
 52:   21205820   21191392   21197675   21195480   IO-APIC-fasteoi   eth4
 53:     935453     935812     936477     934636   IO-APIC-fasteoi   eth5
 72:         12         12         12         13   IO-APIC-fasteoi   ioc0
 73:         13         12         12         12   IO-APIC-fasteoi   ioc1
NMI:          0          0          0          0   Non-maskable interrupts
LOC:   23458411   20298740   21162365   19492670   Local timer interrupts
RES:       8959       9659       7560       7470   Rescheduling interrupts
CAL:       4014       5220       6462       6240   function call interrupts
TLB:      11014      12091      17161      17516   TLB shootdowns


загрузка всегда max
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Равномерная загрузка ядер процессора по сетевым интерфейсам

Сообщение rm_ »

На десктопе девять сетевых интерфейсов?
И заверните цитаты в [ code ] или [ codebox ].
Спасибо сказали:
roleg
Сообщения: 38
ОС: ALT Linux 4

Re: Равномерная загрузка ядер процессора по сетевым интерфейсам

Сообщение roleg »

rm_ писал(а):
09.02.2009 18:54
На десктопе девять сетевых интерфейсов?
И заверните цитаты в [ code ] или [ codebox ].


абсолютно верно, на Desktop 9 интерфейсов, а на Server 2 интерфейса

загрузка на Desktop равномерно распределена по всем ядрам, а на Server только на двух. :unsure:
Спасибо сказали:
Аватара пользователя
INF[SZ]
Сообщения: 395
ОС: Centos

Re: Равномерная загрузка ядер процессора по сетевым интерфейсам

Сообщение INF[SZ] »

Код: Выделить всё

echo "0000000f" >/proc/irq/50/smp_affinity
echo "0000000f" >/proc/irq/58/smp_affinity


Поиск в гугле по ключевому слову "SMP-affinity".
Я не понял Вашего вопроса, но я Вам на него отвечу.
Спасибо сказали:
roleg
Сообщения: 38
ОС: ALT Linux 4

Re: Равномерная загрузка ядер процессора по сетевым интерфейсам

Сообщение roleg »

Код: Выделить всё

           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7
  0:    3490568      25010    3071065    3157763    3068618    3068607    3887998    3066078    IO-APIC-edge  timer
  6:          3          0          0          0          0          0          0          0    IO-APIC-edge  floppy
  7:          0          0          0          0          0          0          0          0    IO-APIC-edge  parport0
  8:          1          0          0          0          0          0          0          0    IO-APIC-edge  rtc
  9:          1          0          0          0          0          0          0          0   IO-APIC-level  acpi
 14:         61          0          0          0          0          0          0          0    IO-APIC-edge  ide0
 50:  317590815      75959     403089          0     168544          0          0    3577519         PCI-MSI  eth0
 58:     853616  225995385   48429987     385305          0          0     781769          0         PCI-MSI  eth1
169:          0          0          0          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb4
177:          0          0          0          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb3
185:          0          0          0          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb1, ehci_hcd:usb5
233:      19370         24      24918      11661       5118        259      20256         99   IO-APIC-level  libata, uhci_hcd:usb2
NMI:        274        110         46         32         31         31         33         35
LOC:   22836494   22836521   22836495   22836442   22836451   22836428   22836394   22836371
ERR:          0
MIS:          0


картинка вроде лучше, но через htop теперь активно только одно ядро :drunk:
может irqbalance виноват?
Спасибо сказали:
roleg
Сообщения: 38
ОС: ALT Linux 4

Re: Равномерная загрузка ядер процессора по сетевым интерфейсам

Сообщение roleg »

Результаты работы не впечатлили. Загрузка идет теперь только по 1-му ядру на оба интерфейса и грузит другие ядра только под другие процессы в системе.
Так что up
Спасибо сказали:
roleg
Сообщения: 38
ОС: ALT Linux 4

Re: Равномерная загрузка ядер процессора по сетевым интерфейсам

Сообщение roleg »

Не выходит, буду разбиратся своими силами, всем спасибо.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Равномерная загрузка ядер процессора по сетевым интерфейсам

Сообщение rm_ »

Апать вроде бы запрещено.
Могу предположить, что прерывания распределяются так потому, что на "десктопе" сетевых интерфейсов больше, чем ядер, а на сервере - меньше.
Спасибо сказали:
roleg
Сообщения: 38
ОС: ALT Linux 4

Re: Равномерная загрузка ядер процессора по сетевым интерфейсам

Сообщение roleg »

В том то и дело, задействовать все 8 ядер на 2 сетевых подключнения не получается, процессы на это дело влияния не имеют. Я так понял что требуется процесс разбить на несколько потоков которые могли бы синхронно загружать проц.
Может кто сталкивался с такой задачей?
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Равномерная загрузка ядер процессора по сетевым интерфейсам

Сообщение rm_ »

В том то и дело, задействовать все 8 ядер на 2 сетевых подключнения не получается, процессы на это дело влияния не имеют. Я так понял что требуется процесс разбить на несколько потоков которые могли бы синхронно загружать проц.

Я вроде ничего не говорил о процессах.
Предположение было о том, что каждый eth*-интерфейс более-менее жёстко привязывается к какому-то ядру.
Поэтому девять интерфейсов на 4 ядра раскидать не проблема (выходит по два интерфейса на ядро, причём одному из ядер достанется даже три)
А два eth на восемь ядер - уже не раскидаешь.
Спасибо сказали: