load distribution per CPU
Всем привет,
Имеется ящик с процессором "Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz"
Инсталляция Etch amd64 с ядром 2.6.26-core2-amd64 (backport)
Проблема в том, что нагрузка не распределяется равномерно между ядрами.
В то время как первое ядро загружено на 100%, остальные отдыхают на 87
примерно.
Характер нагрузки -- терминация пппое сессий (>1000) + mysql.
Прерывания не распределяются между ядрами !
server:/# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 36 0 0 0 IO-APIC-edge timer
1: 8 0 0 0 IO-APIC-edge i8042
8: 1 0 0 0 IO-APIC-edge rtc0
9: 0 0 0 0 IO-APIC-fasteoi acpi
16: 0 0 0 0 IO-APIC-fasteoi
uhci_hcd:usb4, ahci
17: 76 0 0 0 IO-APIC-fasteoi
ide0, ide1
18: 0 0 0 0 IO-APIC-fasteoi
uhci_hcd:usb3
19: 44641518 0 0 0 IO-APIC-fasteoi
uhci_hcd:usb2, ata_piix, ata_piix, eth1
21: 46246974 422 0 0 IO-APIC-fasteoi eth3
22: 193 0 0 0 IO-APIC-fasteoi HDA
Intel
23: 0 0 0 0 IO-APIC-fasteoi
uhci_hcd:usb1, ehci_hcd:usb5
1273: 2290156220 0 0 0 PCI-MSI-edge eth0
1274: 532003458 0 0 0 PCI-MSI-edge eth2
NMI: 0 0 0 0 Non-maskable interrupts
LOC: 3499690657 101451884 83962573 76629102 Local timer interrupts
RES: 16526462 16022276 16402552 16051127 Rescheduling interrupts
CAL: 43627 42308 35745 38946 function call interrupts
TLB: 3551429 3244464 2094809 2700859 TLB shootdowns
TRM: 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 Threshold APIC interrupts
SPU: 0 0 0 0 Spurious interrupts
ERR: 0
server:/#
Имеется еще один ящик с железом поновее. На нем и нагрузка и прерывания
распределяются равномерно:
server:/# ssh user@server2 'cat /proc/interrupts'
CPU0 CPU1 CPU2 CPU3
0: 1997 1973 1976 1987 IO-APIC-edge timer
1: 1 0 1 0 IO-APIC-edge i8042
8: 0 1 0 0 IO-APIC-edge rtc0
9: 0 0 0 0 IO-APIC-fasteoi acpi
12: 2 0 0 2 IO-APIC-edge i8042
16: 0 0 0 0 IO-APIC-fasteoi
uhci_hcd:usb1
18: 0 0 0 0 IO-APIC-fasteoi
uhci_hcd:usb3, ehci_hcd:usb5, uhci_hcd:usb7
19: 0 0 0 0 IO-APIC-fasteoi
uhci_hcd:usb6, ide0, ide1
21: 0 0 0 0 IO-APIC-fasteoi
uhci_hcd:usb2
23: 0 0 0 0 IO-APIC-fasteoi
uhci_hcd:usb4, ehci_hcd:usb8
1272: 160723401 160486121 160786676 160502068 PCI-MSI-edge eth2
1273: 635355568 636393198 635203303 636454623 PCI-MSI-edge eth1
1274: 290877702 290021095 290952980 289980421 PCI-MSI-edge eth0
1275: 19917870 19824531 19928985 19818790 PCI-MSI-edge ahci
NMI: 0 0 0 0 Non-maskable interrupts
LOC: 597673455 593601582 581710941 578993322 Local timer interrupts
RES: 2040904 1956861 2363243 2485440 Rescheduling interrupts
CAL: 81397 78067 75621 76000 function call interrupts
TLB: 1874481 3039812 1712694 2825544 TLB shootdowns
TRM: 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 Threshold APIC interrupts
SPU: 0 0 0 0 Spurious interrupts
ERR: 0
server:/#
Как побороть проблему с первым ящиком ? Пробовал говорить каждому
прерыванию сетевой карты, что мол все 4 ядра могут его обслуживать --
безрезультатно.
мать на первом ящике:
Manufacturer: ASUSTeK Computer INC.
Product Name: P5B-Premium
Version: Rev 1.xx
Serial Number: MB-1234567890
показания TOPa на первом ящике:
Cpu0 : 1.0%us, 0.3%sy, 0.0%ni, 80.7%id, 0.0%wa, 2.7%hi, 15.3%si,
0.0%st
Cpu1 : 0.3%us, 1.3%sy, 0.0%ni, 98.4%id, 0.0%wa, 0.0%hi, 0.0%si,
0.0%st
Cpu2 : 0.6%us, 0.6%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.0%si,
0.0%st
Cpu3 : 1.6%us, 0.6%sy, 0.0%ni, 97.7%id, 0.0%wa, 0.0%hi, 0.0%si,
0.0%st
iostat:
avg-cpu: %user %nice %system %iowait %steal %idle
2,98 0,00 6,93 0,28 0,00 89,80
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 32,16 18,14 690,07 10957688 416916080
sda1 32,16 18,14 690,07 10957296 416916080
sdb 32,14 18,62 690,07 11250527 416916080
sdb1 32,14 18,62 690,07 11250135 416916080
md0 32,48 36,76 649,86 22206119 392618256
dm-0 0,10 0,96 8,28 579816 5003558
dm-1 0,68 0,47 4,95 281608 2989136
dm-2 31,70 35,33 636,63 21343583 384625562
Кто-нибудь боролся с подобными проблемами ?
Заранее благодарен.
Reply to: