[megoldva] Hálózati bottleneck - de hol és mi?

Fogtam egy jó erős szervert. (HP Proliant ML350 G6, sok-sok mag, sok giga ram, broadcom gigabit) Toltam rá debian lenny-t, apache 2.2-t, csináltam teszteléshez egy szép nagy sparse fájlt.

Hálózati közeg: Cisco SB SR2024 gigabit switch, aggattam rá 3-4 klienst, és uccu neki.

Bármelyik kliensen, ha önmagában elindítok egy wget-et, akkor ~75-80MByte/sec. Ez nekem kielégítő eredmény.

Azonban, ha elindítom a második kliensen is a letöltést, az össz. kimenő sebesség drasztikusan lecsökken, alig több, mint 15MByte/sec-re. Ha a harmadik kliensen is elindítom a letöltést, még tovább lassul, az össz. kimenő adat 8-10MByte/sec körül van.

Próbálom tologatni a TCP-vel kapcsolatos sysctl változókat, eddig sikertelenül. Feltettem egy FTP szervert is, jól láthatóan nem apache specifikus a probléma: ugyanez a jelenség.

Mit dobjak ki?

az SR2024 switch helyett beraktam egy SR2016-ot, ugyanez. más gyártótól származó gigás switch sajnos nincs kéznél.

Ötletek?

Hozzászólások

biztos? milyen fs alatt mekkora ez a file?

inkabb dinamikusan csinalne'k valami stream-et (peldaul php ont ki magabol par giga cuccot), akkor garantalt, hogy meg se nyekken a diszk :] sot, van fuggetlen lehetoseged: szerveroldali mereseket is csinalhatsz, vhogy ugyesen (pl a veges hosszusagu stream vegen kikuldi a time()-ok kulonbseget).

egyébként ext3, és 4 gigabájtos a fájl.
ettol fuggetlenul talan egy

dd if=/sparse/file of=/dev/null

nem arthat, hogy tenylegesen mennyi ideig is tart kiolvasni egy ilyen sparse file-t. terminalbol kiadva, parhuzamosan, akar lehet csinalni kettot/harmat is is. ne fessuk a nem alvo ordogot a falra.

Egyszer, amikor volt hp a kezem alatt, három gigabites hálókártyán összesen 2.5Gbps-t csiholtam ki a gépből, apaccsal, kliens oldalon wget-tel. Egy kártyán 110MBpst ki lehet hozni.

Az érdekelne, hogy minden gépen linux ment?

Ha gyanúba akarod keverni az apacsot, akkor iperf-fel is tesztelheted.

> Egyszer, amikor volt hp a kezem alatt, három gigabites hálókártyán
> összesen 2.5Gbps-t csiholtam ki a gépből, apaccsal, kliens oldalon
> wget-tel. Egy kártyán 110MBpst ki lehet hozni.

az szép. én most mindenesetre ezzel a 75MB/sec-kel jól ellennék.

> Ha gyanúba akarod keverni az apacsot, akkor iperf-fel is tesztelheted.

ezért tettem fel ftpd-t is, legyen mivel összevetni.

ha megy a három kliens, (Linux + wget) akkor az összes kimenő adat alig 100 megabit, viszont a ping felmegy 100ms-re, és még a konzolon szöveg görgetés is beszaggat.

ez kernel/IP stack gyanús probléma... de mi lehet?

a systat/iostat/top nem mutat semmi érdekeset, 99.6% idle...

Ha tippelnem kellene én a Cisco-nak csúfolt Linksys SR2024-t dobnám ki. A Cisco-nál dolgozó komolyabb szakemberek ezeket szokták a bemutatókon átugrani: "ilyen játék switch is van a kínálatban, de ezekkel ne foglalkozzunk" mondat kíséretében.

az ő döntésük volt mikor felvásárolták a linksys-t. Ha csak szimplán le akarták volna építeni a márkanevet, akkor azt kellett volna csinálni. Ha viszont árulják tovább a cuccaikat saját név alatt, akkor nem kell lesajnálóan nyilatkozni róla. Van létjogosultsága a gbit-es switcheknek 1 millió forint alatt is, a catalyst fícsörök 95%-a nem kell egy szimpla LAN-hoz.

pedig annak volt igaza, aki a Linksys-t hibáztatta.

ha az összes portra gigabites eszközt dugok, akkor megy minden gigabittel. ha azonban akár egyetlen portra 100 megabites eszközt dugok, és az elkezd "érdemben" forgalmazni, akkor a switch többi portja belassul, bár a link rajtuk fizikailag gigabites, az adatfolyam valójában csak portonként 100 megabit körülire esik.

... mintha egyenlő arányú terhelés-elosztás lenne a portokon ...

mert, az egyik porton lógott egy százas munkaállomás...