On Tue, 26 Apr 2005, Florin Anton wrote:
> Problema este : cand se face traffic mediu prin server (50-60Mbit) acesta
> are o problema majora cu incarcarea cpu (80-90%).
Problema e de la SNAT/conntrack. Conntrack-ul este un foarte
mare consumator de resurse. Chiar daca nu ai reguli de nat pe o anumita
interfata, daca traficul intre 2 clienti iti trece pe acolo (il fortezi
tu cu scopul de a-i limita, sau pentru ca nu are pe unde prin alta parte
daca clientii sint in 2 segmente layer2 diferite) si iti rupe cpu-ul in
2 si-ti da foc la ventilator.
> Un cat dupa /proc/interrupts spune:
> CPU0 CPU1
> 0: 1014415767 10022 IO-APIC-edge timer
> 8: 12 1 IO-APIC-edge rtc
> 9: 1 0 IO-APIC-level acpi
> 14: 6363499 0 IO-APIC-edge ide0
> 15: 34 0 IO-APIC-edge ide1
> 169: 0 0 IO-APIC-level uhci_hcd
> 177: 491829352 3681 IO-APIC-level eth0
> 185: 3348331996 163616343 IO-APIC-level eth1
> 193: 3659374879 0 IO-APIC-level eth2
> 201: 0 0 IO-APIC-level ehci_hcd
> 209: 0 0 IO-APIC-level uhci_hcd, uhci_hcd
> 217: 0 0 IO-APIC-level uhci_hcd
> NMI: 0 0
> LOC: 1014494886 1014495214
Porneste irqbalance, s-ar putea sa te ajute la distribuirea
numarului de irq-uri pe cele 2 cpu-uri virtuale.
> Tin sa precizez ca pe server ruleaza si un squid. Insa chiar si dat
> jos, tot nu se observa nici o imbunatatire la incarcare.
> Cum s-ar putea imbunatati problema cu incarcarea?
Ai mai multe variante:
1. Reducerea numarului de reguli de nat sau rescrierea acestora.
2. Vinde tancul asta de CPU+MB si ia-ti 2 in loc, un p4 la
1.6-1.8 cu 512KB cache pe care sa-l faci router retea locala/fileserver/
SMTP/POP3/whatever si inca un celeron pe la 2.4GHz pe care sa-l
maci masina pentru NAT/router internet.
3. Ar fi pacat sa pui masina asta sa faca doar nat/squid insa
poate fi si asta o solutie in cazul in care mai gasesti inca vreo masina
cu cpu rezonabil (intel 1.0-1.4GHz sau AMD 1.6-2.4GHz) s-o faci router
pentru clientii tai si sa nu ai pe ea decit eventual limitari, in rest
rmmod ip_conntrack si modulele ce depind de el;
4. Pune-i la asta pe care o ai un cpu la 3.6GHz sau chiar mai
mare (sau chair mai multe, 2), insa asta nu-ti va oferi o solutie cu
care s-o duci mult timp, poate citeva saptamini pina cind vei vinde la
clientii tai mai multa banda.
Ideea este sa faci sa NU se mai intilneasca traficul mare cu
ip_conntrack-ul. In conditiile in care tu trebuie/esti nevoit/vrei sa
faci NAT nu poti face aceasta separare decit cu 2 masini diferite. Asta
va fi o solutie relativ scalabila dpdv. al nevoilor tale si al
pretentiilor clientilor tai (care probabil nu sint clienti business de
2000$ ci mult mai mici).
> Sa imi cumpar placi SMC cu chipset incorporat ? dar chiar trebuie sa
> ajung la momentul ala atat de repede :) ?!
Cu ce fel de chipset incorporat? Problema nu e de la irq/sec sau
trafic. Citi pps cara interfata dinspre clienti la un moment dat? Dar
cea spre internet? Dar cea spre reteaua metropolitana?
--
Any views or opinions presented within this e-mail are solely those of
the author and do not necessarily represent those of any company, unless
otherwise expressly stated.
---
Detalii despre listele noastre de mail: http://www.lug.ro/