Помогите решить проблему, руки опускаются (Есть сервер
1 x CPU E5530 @ 2.40GHz типа 8 ядер
мамка s5520ch
Linux bgp 2.6.26-2-amd64 #1 SMP Thu Nov 5 02:23:12 UTC 2009 x86_64 GNU/LinuxСервер используется для роутинга, на нем поднято только bgp, рулит сетку 0/22.
Сервер гоняет через себя более 200 тыс пакетов сек в основном UDP
Загрузка по трафику около 150mbit исхода и 60mbit входящего.Суть проблемы в том что при просмотре командой htop, 2 ядра из 8 показанных загружены на 100% остальные курят, самое интересное в том что я не могу понять что именно грузит.
Htop весь в красном цвете.top
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.0%us, 0.0%sy, 0.0%ni, 81.7%id, 0.0%wa, 16.7%hi, 1.7%si, 0.0%st
Cpu4 : 0.0%us, 0.0%sy, 0.0%ni, 47.7%id, 0.0%wa, 3.0%hi, 49.3%si, 0.0%st
Cpu5 : 0.0%us, 0.0%sy, 0.0%ni, 52.2%id, 0.0%wa, 2.7%hi, 45.2%si, 0.0%st
Cpu6 : 0.0%us, 0.0%sy, 0.0%ni, 87.3%id, 0.0%wa, 10.0%hi, 2.7%si, 0.0%st
Cpu7 : 0.0%us, 0.0%sy, 0.0%ni, 99.6%id, 0.4%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2000528k total, 575500k used, 1425028k free, 142656k buffers
Swap: 5855652k total, 0k used, 5855652k free, 113952k cachedCpu4 49.3%si и Cpu5 45.2%si в дневное время упираются в 100%, пинг начинает прыгать, увеличивается с 1mc до 30mc и начинается попа ((
Подскажите как можно решить проблему, распределить нагрузку cpu4;cpu5 по всем ядрам
>[оверквотинг удален]
>
>Сервер используется для роутинга, на нем поднято только bgp, рулит сетку 0/22.
>
>Сервер гоняет через себя более 200 тыс пакетов сек в основном UDP
>
>Загрузка по трафику около 150mbit исхода и 60mbit входящего.
>
>Суть проблемы в том что при просмотре командой htop, 2 ядра из
>8 показанных загружены на 100% остальные курят, самое интересное в том
>что я не могу понять что именно грузит.cat /proc/interrupts
>Подскажите как можно решить проблему, распределить нагрузку cpu4;cpu5 по всем ядрам
Сначало ее надо понять
# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
0: 36 0 0 209390643 0 0 0 0 IO-APIC-edge timer
8: 0 0 0 1 0 0 0 0 IO-APIC-edge rtc0
9: 0 0 0 2 0 0 0 0 IO-APIC-fasteoi acpi
16: 0 0 0 0 0 0 0 627 IO-APIC-fasteoi uhci_hcd:usb5, uhci_hcd:usb6, uhci_hcd:usb7, ehci_hcd:usb8
18: 0 0 0 0 0 0 0 134070 IO-APIC-fasteoi ata_piix
19: 0 0 0 0 0 0 45 0 IO-APIC-fasteoi uhci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb3, ehci_hcd:usb4
21: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi ata_piix
1261: 0 0 0 0 0 0 17 0 PCI-MSI-edge eth1
1262: 0 0 0 0 0 1682986468 0 0 PCI-MSI-edge eth1-rx3
1263: 0 0 0 0 0 1680083298 0 0 PCI-MSI-edge eth1-rx2
1264: 0 0 0 0 1670853136 0 0 0 PCI-MSI-edge eth1-rx1
1265: 0 0 0 0 1690448891 0 0 0 PCI-MSI-edge eth1-rx0
1266: 0 0 0 0 0 0 1241253084 0 PCI-MSI-edge eth1-tx0
1267: 0 0 0 0 0 0 2 0 PCI-MSI-edge eth0
1268: 0 0 0 0 0 1462182680 0 0 PCI-MSI-edge eth0-rx3
1269: 0 0 0 0 0 1457873689 0 0 PCI-MSI-edge eth0-rx2
1270: 0 0 0 0 1467798867 0 0 0 PCI-MSI-edge eth0-rx1
1271: 0 0 0 0 1496200097 0 0 0 PCI-MSI-edge eth0-rx0
1272: 0 0 0 1256404765 0 0 0 0 PCI-MSI-edge eth0-tx0
1275: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
1276: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
1277: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
1278: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
1279: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
NMI: 0 0 0 0 0 0 0 0 Non-maskable interrupts
LOC: 40665164 27583666 9885640 39670413 463210224 461374152 51962529 5343574 Local timer interrupts
RES: 94471348 38917166 15370801 11726069 243798536 118852919 880780 1110921 Rescheduling interrupts
CAL: 6434 6482 5955 5869 5801 5777 5150 3934 function call interrupts
TLB: 17 25 47 5980 5250 5247 9917 370 TLB shootdowns
TRM: 0 0 0 0 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 0 0 0 0 Threshold APIC interrupts
SPU: 0 0 0 0 0 0 0 0 Spurious interrupts
ERR: 0
Не у кого нет никаких вариантов ?
Неужели никто не сталкивался с подобной проблемой ?
Подскажите, как можно разбить по ядрам, чем пользоваться в какую сторону копать ?
проблема решилась установкой irqbalans + ручной балансировкой irqecho маскапроцессора >/proc/irq/NN/smp_affinity
Пример:
echo 01 > /proc/irq/1261/smp_affinityТак рекомендую прочесть доку
http://forum.nag.ru/forum/index.php?showtopic=46335&st=20
http://www.opennet.me/docs/RUS/GigabitEthernet/
http://devresources.linux-foundation.org/dev/robustmutexes/s...Для Red hat
https://bugzilla.redhat.com/show_bug.cgi?id=432451cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 CPU8 CPU9 CPU10 CPU11 CPU12 CPU13 CPU14 CPU15
0: 9097767 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IO-APIC-edge timer
8: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IO-APIC-edge rtc0
9: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IO-APIC-fasteoi acpi
16: 428 0 0 0 0 102 0 0 0 0 0 0 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb5, uhci_hcd:usb6, uhci_hcd:usb7, ehci_hcd:usb8
18: 3261 0 0 0 0 0 0 3861 0 0 0 0 0 0 0 0 IO-APIC-fasteoi ata_piix
19: 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb3, ehci_hcd:usb4
21: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IO-APIC-fasteoi ata_piix
1261: 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge eth1
1262: 3280 56245 0 49806 0 0 0 0 0 0 0 0 44638 0 0 60951311 PCI-MSI-edge eth1-rx3
1263: 3208 48911 0 59861214 0 0 0 0 46585 0 0 0 0 0 0 0 PCI-MSI-edge eth1-rx2
1264: 3341 45170274 0 0 0 0 0 0 0 0 0 0 0 0 44560 0 PCI-MSI-edge eth1-rx1
1265: 3363 0 0 0 0 61367045 0 0 0 0 44904 0 0 0 0 0 PCI-MSI-edge eth1-rx0
1266: 64094 0 0 29644446 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge eth1-tx0
1267: 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge eth0
1268: 4235 50176 0 0 0 0 0 38789854 0 124744 0 0 0 0 0 0 PCI-MSI-edge eth0-rx3
1269: 3801 37302201 0 0 0 0 0 0 0 43493 0 0 0 0 0 124855 PCI-MSI-edge eth0-rx2
1270: 3835 0 0 0 0 0 0 0 0 0 0 0 0 37763672 0 0 PCI-MSI-edge eth0-rx1
1271: 3971 0 0 0 0 0 0 0 0 0 0 38026892 0 0 0 0 PCI-MSI-edge eth0-rx0
1272: 66662 0 0 0 0 0 0 178212 0 29427629 0 0 0 0 0 0 PCI-MSI-edge eth0-tx0
1275: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
1276: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
1277: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
1278: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
1279: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
NMI: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Non-maskable interrupts
LOC: 126589 6828733 111089 2888703 181456 2781209 12876 5321692 56721 1186355 297970 5386811 56586 5221126 28151 2808812 Local timer interrupts
RES: 1851 9651908 3311 5325905 1351 1968339 2157 806550 10666 2181462 10678 4451110 9996 800922 10367 2003996 Rescheduling interrupts
CAL: 1073 1237 1233 1235 1226 1238 1236 1238 1169 1125 1052 1121 1061 1008 1161 1157 function call interrupts
TLB: 31 10 2 0 7 0 5 70 50 241 42 55 42 35 55 2 TLB shootdowns
TRM: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Threshold APIC interrupts
SPU: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Spurious interrupts
ERR: 0
>Есть сервер1 x CPU E5530 @ 2.40GHz типа 8 ядер
мамка s5520ch
Linux bgp 2.6.26-2-amd64 #1 SMP Thu Nov 5 02:23:12 UTC 2009 x86_64 GNU/Linux
а ничего, что у вас сборка для амд 64 на интеловском железе? или я чего-то не понимаю...
все верно понимаете, разницы не вижу еще докупить сетевушку которая тянет 16 очередей
http://www.intel.com/Assets/PDF/prodbrief/320116.pdf
как раз по очереди на ядро и можно запускать по 500 тыс пакетов в сек, при нагрузке 400-500 мегабитBTW/ добавили еще 1 проц, железка летает =)
>а ничего, что у вас сборка для амд 64 на интеловском железе?
>или я чего-то не понимаю...Интела лицензировали у АМД 64-битную схему под названием ЕМ64Т. На любом интеловском проце с поддержкой ЕМ64Т сборки для АМД64 работают нативно.
>>а ничего, что у вас сборка для амд 64 на интеловском железе?
>>или я чего-то не понимаю...
>
>Интела лицензировали у АМД 64-битную схему под названием ЕМ64Т. На любом интеловском
>проце с поддержкой ЕМ64Т сборки для АМД64 работают нативно.hyper trading лучше в биосе отключить и оперировать только реальными cpu