slevin Отговорено 10 Март, 2010 Доклад Сподели Отговорено 10 Март, 2010 да това го четош, но въпроса ми е да няма и странични ефекти ... Тествай и ще видиш. "Разхвърляй" прекъсванията на мрежовите карти. Може дори да пробваш и iptables да го бинд-неш само към едно от ядрата. Така е наистина,polling-а сваля натоварването и прекъсванията но пък внася задръжки,което при много пакети пак не е добре. Естествено всяко нещо си има своите плюсове и минуси. Зависи от това по колко пакета да взема на poll, колко пъти да poll ва за секунда и др... Тези неща не ги гoворя от опит(няма къде да го реализирам и тествам аз) а ще е интересно. Просто съм чел от хора споделяли опит в тази насока. Даже бе писано някъде за модифицирани BSD-та които пак poll-ват, дето въртят по 1mpps на 7 gbps с 50 % idle на ядро на quad-core. Предоплагам е чисто рутиране само без допълнителни сървиси, но пак е много добър резултат. Проблема главно е бил в това, че се заключва преди да почне poll-ването на картите и то линейно, като друг процес неможе да ги poll-не. Вече поне във FreBSD 8 е имплементирано (smp affinity) и може да се указва коя карта към кое ядро да се биндне, което предполагам оптимизира още нещата. Има и една друга фунционалност още във FreeBSD 5, IP Fast Forward(доста интересно решение), което не съм запознат дали го има в линукс. Друго което е свързано с перформънса е, дали мрежовите контролери са на северния мост или на южния. Т.е. зависи от реализацията на дъното. Та извода на всичко това е че има много фактори влиаещи... Адрес на коментара Сподели в други сайтове More sharing options...
Mile Отговорено 10 Март, 2010 Доклад Сподели Отговорено 10 Март, 2010 Ми те дъната са ясни от много време. Чипсет 3200-3210, bcm 5721 или pro1000. Предполагам всички са с такива. Тя разликата чисто рутиране и шейпене, Н брой влани, бриджове, imq-та и прочие. Машинка с чисто рутиране при мен 500mbps с 2 broadcom-a, PentiumD 945 на 3400мхз спеше на 10-15% лоад. С шейпенето, локала и прочие лайна quad 9550 е на 80%-тина със същите карти. То ясно, че може да се оптимизира до безкрай всичко (правилото за мъртвия кон), но идва един момент да се вземе по-силно животно, второ или бог знае какво. Аз като се гледам инвестирам смело в собствената си глупост да троша пари и да се надявам да не пуснат по udp на малки пакети още нещо. Те хората си пишат, променят.. За isp-то остава да ъпгрейдва, оптимизира, да гледа графики споменавайки майките на домашните юзери чудейки се какво толкова намериха да споделят, след като "Война и мир" е 600кб с форматирането те какво по-добро са измислили да споделят със света, че да не им стигат на 900 юзера 100k pps Адрес на коментара Сподели в други сайтове More sharing options...
slevin Отговорено 10 Март, 2010 Доклад Сподели Отговорено 10 Март, 2010 Ми те дъната са ясни от много време. Чипсет 3200-3210, bcm 5721 или pro1000. Предполагам всички са с такива. Тя разликата чисто рутиране и шейпене, Н брой влани, бриджове, imq-та и прочие. Машинка с чисто рутиране при мен 500mbps с 2 broadcom-a, PentiumD 945 на 3400мхз спеше на 10-15% лоад. С шейпенето, локала и прочие лайна quad 9550 е на 80%-тина със същите карти. То ясно, че може да се оптимизира до безкрай всичко (правилото за мъртвия кон), но идва един момент да се вземе по-силно животно, второ или бог знае какво. Аз като се гледам инвестирам смело в собствената си глупост да троша пари и да се надявам да не пуснат по udp на малки пакети още нещо. Те хората си пишат, променят.. За isp-то остава да ъпгрейдва, оптимизира, да гледа графики споменавайки майките на домашните юзери чудейки се какво толкова намериха да споделят, след като "Война и мир" е 600кб с форматирането те какво по-добро са измислили да споделят със света, че да не им стигат на 900 юзера 100k pps Прав си Миле, все пак говориш от опит, което е по близо до реалност от теория. М/у другото гледах блок схемата на Supermicro x7sbi-ln4 точно мрежовите контролери са на южния мост, а трябва да е обратното. Примерно Intel S5000P серията има 2 x PCI Express x8 на северния мост. Адрес на коментара Сподели в други сайтове More sharing options...
Администратор kokaracha Отговорено 10 Март, 2010 Автор Администратор Доклад Сподели Отговорено 10 Март, 2010 Тествай и ще видиш. "Разхвърляй" прекъсванията на мрежовите карти. Може дори да пробваш и iptables да го бинд-неш само към едно от ядрата. Естествено всяко нещо си има своите плюсове и минуси. Зависи от това по колко пакета да взема на poll, колко пъти да poll ва за секунда и др... Тези неща не ги гoворя от опит(няма къде да го реализирам и тествам аз) а ще е интересно. Просто съм чел от хора споделяли опит в тази насока. Даже бе писано някъде за модифицирани BSD-та които пак poll-ват, дето въртят по 1mpps на 7 gbps с 50 % idle на ядро на quad-core. Предоплагам е чисто рутиране само без допълнителни сървиси, но пак е много добър резултат. Проблема главно е бил в това, че се заключва преди да почне poll-ването на картите и то линейно, като друг процес неможе да ги poll-не. Вече поне във FreBSD 8 е имплементирано (smp affinity) и може да се указва коя карта към кое ядро да се биндне, което предполагам оптимизира още нещата. Има и една друга фунционалност още във FreeBSD 5, IP Fast Forward(доста интересно решение), което не съм запознат дали го има в линукс. Друго което е свързано с перформънса е, дали мрежовите контролери са на северния мост или на южния. Т.е. зависи от реализацията на дъното. Та извода на всичко това е че има много фактори влиаещи... Аз ползвам 8-ци и 7-ци за бордери,на сравнително вече стари кошници.Всичко което си го написал е така,исках само да кажа че се усеща леко в задржката но не е фатално.При мен се вдигана 1 мс на 300мбпс което не е нищо за пeнтиум дyалкор на 4гхз,с карти броудкомки чипсет bcm5721. Cpuset-a не сам пипал щото не не се налага товара е под 5% без шеип и около 20% с шеип с 4,5К динамични правила. Кернела ми е компилиран с device polling/hz=1000 и ipfw/dummynet При мен сисцтла е така5 kern.polling.enable=1 kern.polling.burst_max=1000 kern.polling.each_burst=50 kern.polling.user_frac=50 net.inet.ip.fastforwarding=1 net.inet.ip.portrange.randomized=0 net.inet.ip.dummynet.hash_size=512 net.inet.ip.dummynet.io_fast=1 Use since OpenBSD 3.x FreeBSD 4.x Centos 5.x Debian 3.x Ubuntu 7.x Аз съм фен на OpenWRT. Горчивината от лошото качество остава дълго след като е преминало удоволствието от ниската цена. _____________________________ ___|____|____|____|____|____|__ _|____|____|____|____|____|____ ___|____|_ Удряй _|____|____|__ _|____|___ главата ___|____|____ ___|____|_ си тук!! |____|____|__ _|____|____|____|____|____|____ ___|____|____|____|____|____|__ Адрес на коментара Сподели в други сайтове More sharing options...
Администратор kokaracha Отговорено 10 Март, 2010 Автор Администратор Доклад Сподели Отговорено 10 Март, 2010 Чипсет 3200-3210, bcm 5721 ,pro1000 не са ли вече малко остарели. Виж за новото pro/10ge lr/sr по добре. Use since OpenBSD 3.x FreeBSD 4.x Centos 5.x Debian 3.x Ubuntu 7.x Аз съм фен на OpenWRT. Горчивината от лошото качество остава дълго след като е преминало удоволствието от ниската цена. _____________________________ ___|____|____|____|____|____|__ _|____|____|____|____|____|____ ___|____|_ Удряй _|____|____|__ _|____|___ главата ___|____|____ ___|____|_ си тук!! |____|____|__ _|____|____|____|____|____|____ ___|____|____|____|____|____|__ Адрес на коментара Сподели в други сайтове More sharing options...
slevin Отговорено 10 Март, 2010 Доклад Сподели Отговорено 10 Март, 2010 Кернела ми е компилиран с device polling/hz=1000 и ipfw/dummynet При мен сисцтла е така5 kern.polling.enable=1 kern.polling.burst_max=1000 kern.polling.each_burst=50 kern.polling.user_frac=50 net.inet.ip.fastforwarding=1 net.inet.ip.portrange.randomized=0 net.inet.ip.dummynet.hash_size=512 net.inet.ip.dummynet.io_fast=1 В мейл листите на Freebsd препоръчват polling да се сетва през ifconfig(ifconfig em0 polling), не през sysctl променливата. Ето сравнителни тестове(вярно от преди доста време, но пак е база за сравнение) http://taosecurity.blogspot.com/2006/09/freebsd-device-polling.html Адрес на коментара Сподели в други сайтове More sharing options...
Mile Отговорено 10 Март, 2010 Доклад Сподели Отговорено 10 Март, 2010 Чипсет 3200-3210, bcm 5721 ,pro1000 не са ли вече малко остарели. Виж за новото pro/10ge lr/sr по добре. Не се изплаща за нашия размер (като isp). Купуването им "за във времето" не е оправдано без оптика до нас. Би ми било интересно някой ако ползва да сподели как е, но не бих дал пари да тествам аз Адрес на коментара Сподели в други сайтове More sharing options...
Тодор Лазаров Отговорено 10 Март, 2010 Доклад Сподели Отговорено 10 Март, 2010 И в крайна сметка някой ползва ли smp affinity под Linux и получавали нужните резултати иначе Linux-a го ползвам за рутер, vlan-i, shaper, imq и т.н. товар към 100-150Мбит-а pps 20000 hard стара щайга: HP ProLiant DL360 G3 Dual Xeon 2.8 GHz 1U ServerDual NC7781 PCI-X Gigabit Ethernet NICs - driver Broadcom Tigon3 Адрес на коментара Сподели в други сайтове More sharing options...
bambo Отговорено 10 Март, 2010 Доклад Сподели Отговорено 10 Март, 2010 Ползва се, работи, силно препоръчително е даже, да не кажа задължително. : CPU0 CPU1 0: 70 0 IO-APIC-edge timer 1: 2 0 IO-APIC-edge i8042 2: 0 0 XT-PIC-XT cascade 14: 0 0 IO-APIC-edge ide0 15: 0 0 IO-APIC-edge ide1 16: 1971946639 0 IO-APIC-fasteoi uhci_hcd:usb5, eth0 17: 467 1236315100 IO-APIC-fasteoi eth1 18: 0 0 IO-APIC-fasteoi uhci_hcd:usb4 19: 12999319 1 IO-APIC-fasteoi ata_piix, uhci_hcd:usb3 23: 0 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb2 NMI: 0 0 Non-maskable interrupts LOC: 2408860747 2408860691 Local timer interrupts RES: 218449 125831 Rescheduling interrupts CAL: 1406 1641 function call interrupts TLB: 706887 956898 TLB shootdowns TRM: 0 0 Thermal event interrupts SPU: 0 0 Spurious interrupts ERR: 0 MIS: 0 Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 63.3%id, 0.0%wa, 7.3%hi, 29.2%si, 0.0%st това при: IN 152.8Mbps / 40.4kpps и OUT 150.6Mbps / 39.4kpps Доволно старо желязо SUPERMICRO: processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel® Xeon® CPU 3040 @ 1.86GHz stepping : 2 cpu MHz : 1861.993 cache size : 2048 KB картите са pro1000, вградените на дъното. работят: BGPd+zebra - вътрешно, шейпър елементарен, файъруол елементарен, 30vpn тунела за училища и... ба ли го, сигурно има още нещо Адрес на коментара Сподели в други сайтове More sharing options...
byte Отговорено 10 Март, 2010 Доклад Сподели Отговорено 10 Март, 2010 И аз да кажа че е задължително (при трафик над 300-400мбит) root@gw:~# cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 0: 124 0 0 0 IO-APIC-edge timer 1: 2 2 2 2 IO-APIC-edge i8042 9: 0 0 0 0 IO-APIC-fasteoi acpi 12: 29 28 28 29 IO-APIC-edge i8042 14: 0 0 0 0 IO-APIC-edge ide0 15: 0 0 0 0 IO-APIC-edge ide1 216: 2057265928 2051916226 2044687402 2045760842 PCI-MSI-edge eth1 217: 1686990078 1687156004 1720860977 1717298118 PCI-MSI-edge eth3 218: 1725793294 1728639946 1699921232 1696154869 PCI-MSI-edge eth2 219: 1581657990 1584588469 1586029330 1591379806 PCI-MSI-edge eth0 220: 29204 29296 29095 29087 PCI-MSI-edge ahci Адрес на коментара Сподели в други сайтове More sharing options...
bambo Отговорено 10 Март, 2010 Доклад Сподели Отговорено 10 Март, 2010 мдам, това е другия вариант - не всяка мрежарка на отделно core, а всички мрежарки на всички ядра/цпу-та. Лошото е, че не всеки път ми се получава... особено с по-новите дъна, незнам защо Адрес на коментара Сподели в други сайтове More sharing options...
byte Отговорено 11 Март, 2010 Доклад Сподели Отговорено 11 Март, 2010 Има една тъпа работа която наблюдавам, ако имаш две физически цпу-та, не е добре да сложиш дадена карта и върху двете. Почват странни лагове и т.н. Някъде четох, че се губи много време за работа на един драйвер с два отделни Л2/Л3 кеша. Адрес на коментара Сподели в други сайтове More sharing options...
Тодор Лазаров Отговорено 11 Март, 2010 Доклад Сподели Отговорено 11 Март, 2010 Ето и резултат след прехвърляне на прекъсванията на отделни cpu-ta echo 2 > /proc/irq/29/smp_affinity # bind CPU1 eth0 echo 4 > /proc/irq/30/smp_affinity # bind CPU2 eth1 в момента: <pre> CPU0 CPU1 CPU2 CPU3 0: 45 0 0 0 IO-APIC-edge timer 1: 1505 0 0 0 IO-APIC-edge i8042 8: 2 0 0 0 IO-APIC-edge rtc0 9: 0 0 0 0 IO-APIC-fasteoi acpi 10: 0 0 0 0 IO-APIC-fasteoi ohci_hcd:usb1 12: 114 0 0 0 IO-APIC-edge i8042 14: 95 0 0 0 IO-APIC-edge ide0 15: 0 0 0 0 IO-APIC-edge ide1 29: 1983396804 29287258 0 25372 IO-APIC-fasteoi eth1 30: 2801574107 0 113328335 573108 IO-APIC-fasteoi eth0 31: 32693085 0 0 0 IO-APIC-fasteoi cciss0 NMI: 0 0 0 0 Non-maskable interrupts LOC: 3857238347 702568723 425641319 615633502 Local timer interrupts RES: 15992182 24964226 19574436 21590346 Rescheduling interrupts CAL: 433 747 767 810 Function call interrupts TLB: 2958454 3045568 2891653 3829800 TLB shootdowns TRM: 0 0 0 0 Thermal event interrupts SPU: 0 0 0 0 Spurious interrupts ERR: 0 MIS: 0 </pre> Адрес на коментара Сподели в други сайтове More sharing options...
Администратор kokaracha Отговорено 11 Март, 2010 Автор Администратор Доклад Сподели Отговорено 11 Март, 2010 utp Use since OpenBSD 3.x FreeBSD 4.x Centos 5.x Debian 3.x Ubuntu 7.x Аз съм фен на OpenWRT. Горчивината от лошото качество остава дълго след като е преминало удоволствието от ниската цена. _____________________________ ___|____|____|____|____|____|__ _|____|____|____|____|____|____ ___|____|_ Удряй _|____|____|__ _|____|___ главата ___|____|____ ___|____|_ си тук!! |____|____|__ _|____|____|____|____|____|____ ___|____|____|____|____|____|__ Адрес на коментара Сподели в други сайтове More sharing options...
Администратор Велин Отговорено 11 Март, 2010 Администратор Доклад Сподели Отговорено 11 Март, 2010 Ето и резултат след прехвърляне на прекъсванията на отделни cpu-ta echo 2 > /proc/irq/29/smp_affinity # bind CPU1 eth0 echo 4 > /proc/irq/30/smp_affinity # bind CPU2 eth1 Тодоре разликата ще се личи повече ако беше постнал картинка какво е и натоварването вечерта. Не отговарям на постове написани с шльокавица! Адрес на коментара Сподели в други сайтове More sharing options...
Recommended Posts
Създайте нов акаунт или се впишете, за да коментирате
За да коментирате, трябва да имате регистрация
Създайте акаунт
Присъединете се към нашата общност. Регистрацията става бързо!
Регистрация на нов акаунтВход
Имате акаунт? Впишете се оттук.
Вписване