Собственно САБЖ. Необходимо равномерно распределить загрузку с сетевых интерфейсов на все ядра процессора.
ALTLinux Server 4.0.1 (ядро 2.6.18-imq-pae-alt9) 2 процессора по 4 ядра, 2 сетевых Гбит интерфейса.
С помощью irqbalance удалось распределить нагрузку eth0->core1, eth1->core2. На аналогичной Desktop системе с тем же ядром загрузка по умолчанию распределяется по всем ядрам.
Кто сталкивался или знает как включить прошу отписатся в тему.
Равномерная загрузка ядер процессора по сетевым интерфейсам
Модераторы: SLEDopit, Модераторы разделов
-
roleg
- Сообщения: 38
- ОС: ALT Linux 4
-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: Равномерная загрузка ядер процессора по сетевым интерфейсам
Для наглядности, приведите cat /proc/interrupts с обоих машин, предварительно понагружав чем-нибудь оба сетевых интерфейса на них.
-
roleg
- Сообщения: 38
- ОС: ALT Linux 4
Re: Равномерная загрузка ядер процессора по сетевым интерфейсам
ALT Server
ALT Desktop
загрузка всегда max
Код: Выделить всё
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:usb5ALT 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: Равномерная загрузка ядер процессора по сетевым интерфейсам
На десктопе девять сетевых интерфейсов?
И заверните цитаты в [ code ] или [ codebox ].
И заверните цитаты в [ code ] или [ codebox ].
-
roleg
- Сообщения: 38
- ОС: ALT Linux 4
-
INF[SZ]
- Сообщения: 395
- ОС: Centos
Re: Равномерная загрузка ядер процессора по сетевым интерфейсам
Код: Выделить всё
echo "0000000f" >/proc/irq/50/smp_affinity
echo "0000000f" >/proc/irq/58/smp_affinityПоиск в гугле по ключевому слову "SMP-affinity".
Я не понял Вашего вопроса, но я Вам на него отвечу.
-
roleg
- Сообщения: 38
- ОС: ALT Linux 4
Re: Равномерная загрузка ядер процессора по сетевым интерфейсам
Код: Выделить всё
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 теперь активно только одно ядро
может irqbalance виноват?
-
roleg
- Сообщения: 38
- ОС: ALT Linux 4
Re: Равномерная загрузка ядер процессора по сетевым интерфейсам
Результаты работы не впечатлили. Загрузка идет теперь только по 1-му ядру на оба интерфейса и грузит другие ядра только под другие процессы в системе.
Так что up
Так что up
-
roleg
- Сообщения: 38
- ОС: ALT Linux 4
Re: Равномерная загрузка ядер процессора по сетевым интерфейсам
Не выходит, буду разбиратся своими силами, всем спасибо.
-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: Равномерная загрузка ядер процессора по сетевым интерфейсам
Апать вроде бы запрещено.
Могу предположить, что прерывания распределяются так потому, что на "десктопе" сетевых интерфейсов больше, чем ядер, а на сервере - меньше.
Могу предположить, что прерывания распределяются так потому, что на "десктопе" сетевых интерфейсов больше, чем ядер, а на сервере - меньше.
-
roleg
- Сообщения: 38
- ОС: ALT Linux 4
Re: Равномерная загрузка ядер процессора по сетевым интерфейсам
В том то и дело, задействовать все 8 ядер на 2 сетевых подключнения не получается, процессы на это дело влияния не имеют. Я так понял что требуется процесс разбить на несколько потоков которые могли бы синхронно загружать проц.
Может кто сталкивался с такой задачей?
Может кто сталкивался с такой задачей?
-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: Равномерная загрузка ядер процессора по сетевым интерфейсам
В том то и дело, задействовать все 8 ядер на 2 сетевых подключнения не получается, процессы на это дело влияния не имеют. Я так понял что требуется процесс разбить на несколько потоков которые могли бы синхронно загружать проц.
Я вроде ничего не говорил о процессах.
Предположение было о том, что каждый eth*-интерфейс более-менее жёстко привязывается к какому-то ядру.
Поэтому девять интерфейсов на 4 ядра раскидать не проблема (выходит по два интерфейса на ядро, причём одному из ядер достанется даже три)
А два eth на восемь ядер - уже не раскидаешь.