QOS + NAT na SMP stroji - můžeš nějak tvrzení, že se rozloží práce mezi více procesorů doložit nějakými teoriemi / zkušenostmi?
Můj Core2Duo má vytížené pouze jedno jádro cca na 30% (většina kernelového času). Druhé se zapojuje pouze někdy - při spouštění jiných procesů - kompilace, hotsanic, web, atd. V podstatě se furt fláká.
QOSujeme a NATkujeme tím cca 1500 IP adres na 36Mbit lince.
dle /proc/interrupts jsou všechny přerušení pouze na jednom procesoru (až na NMI, které jsou tak nějak napůl).
Nahradili jsme tím P4/2.4 (která byla už z té práce mrtvá). Zlepšení je podstatné, ale čekal jsem, že se CPU o práci podělí lépe - něco ve smyslu "co sí?ovka, to jiné cpu". Asi budu muset něco nastudovat. Blbý je, že nějak nevím co ...
Jaký vliv na to může mít ACPI? Nebo něco úplně jiného?
Nojo ... jenže kde je na 2.6 kernelu volba "irq balance"? hledal jsem ... nenašel ...
Také by to mělo nějak jít kernel parametry při bootu - acpi_irq_nobalance (nebo _balance), noapic nebo pci=noacpi. Ale nikdy jsem to nezkoušel a nějaký přesnější popis toho, co to má dělat jsem ještě nenašel.
Ale co jsem našel - /proc/irq/XX/smp_afinity :-) V poledne hodím druhou sí?ovku na druhý procák a uvidím. Logicky by to mělo být přesně to, co potřebuju.
/proc/irq/XXX/smp_affinity - zase jsem o něco chytřejší. Teď mám druhou sí?ovku na druhém procesoru a jedou oba tak nějak stejně. Tj. problém zatím vyřešen.
Ovšem nápad belgarata - škálovat "NATkování" multiprocesingem to asi neřeší. Ale ještě jsem našel možnost tu affinity zadávat na skupinu procesorů. Nechcete to někdo zkusit? Už nemám jak ...
Na poledne jsem čekal, že jsem měl trochu strach to za provozu měnit :-) Zbytečný ...
Daemon to balance irq's across multiple CPUs on systems with the 2.4 or 2.6 kernel. This can lead to better performance and IO balance on SMP systems. Useful mostly just for 2.4 kernels, or 2.6 kernels with CONFIG_IRQBALANCE turned off.
To je z debiana ... kterej teda nepoužívám ...
Zajímalo by mě, co je ten CONFIG_IRQBALANCE. a) nemělo by to dělat to samý? b) přesně tohle v kernelu vůbec nemůžu najít, ani fedora, ani archlinux.
Pro moje účely mi podle mě stačí to ruční řešení. Ale na dalším serveru pustím tohle a bude asi klid, tam budu mít jen jednu sí?ovku takže se nějaká "online" distribuce přerušení bude hodit. Už jenom kvůli raidu.
Přidávám se k názoru, že by se tento thread asi mohl rozdělit ... od promethea jsme trochu daleko.
Ve stroji (4-way = 2x dualcore) mam 2 PCI-Express sitove karty, ktere umi Message Signalled Interrupts. Kdyz povolim jadru pouzivani MSI, tak vsechny IRQ od obou sitovek skonci na CPU#0 - a je jedno, jak nastavit smp_affinity v /proc
Kdyz vypnu pouzivani MSI, pouziva se IO-APIC, tak se irqs rozkladaji pres CPU, pripadne tam kde ma irq nastavenou affinity. Ale zas ty 2 karty sdili jedine IRQ.
Netusite jestli je to chovani s MSI 'normalni', nebo aspon kde mam zacit hledat chybu v nastaveni, hw, ... ?
mozna... u nas je to MSI ne MSI-X a popis ne-uplne-odpovida, dela to na mne dojem ze jsou postizene (= neaplikuji se) relativne rychle zmeny afinity. Ale JE to mozny.
Ad verze jadra: po problemech (zpetne zhodnoceno jsem je mozna zpusobil spatnym sestavenim jadra sam) jsme z 2.6.18 downgradovali na 2.6.16.51 ... dalsi upgrade bude az kdyz to bude stat za cas ztraceny patchovacim koleckem kernel+iptables+iproute2