SaMBa vs. Total Commander teljesítményprobléma

Fórumok

Adott egy HP ProLiant DL180 G6 szerver 12GB RAM-mal Smart Array P410(?) vezérlővel, 12 db. 1TB-os 7200RPM-es SATA vinyóval. 11 lemez RAID5-tömbbe van foglalva (nettó 10TB), a 12-ik hot spare. A stripe méret (ha jól tudom) 64kiB, és ehhez vannak igazítva a partícióhatárok, és természetesen az mkfs-nek is megadtam ezt a paramétert.

SLES11 fut a gépen Xen kernellel, de domU-k egyelőre nincsenek, majd a jövőben. Szóval minden a dom0-ban fut, a hálózat (szintén a jövőbeni domU-k miatt) 802.1q tagelve érkezik 2x1Gb/s-on bondinggal (etherchannel).

A HW RAID eszközt kicsit megpiszkáltam a /sys fájlrendszeren keresztül (deadline scheduler + 1-2 dolog), és úgy osztottam fel, hogy az elején ott van pár elhanyagolható méretű partícón a rendszer, ~2TiB szabad hely van a végén, a kettő között egy ~7TiB-es /home partíció tölti be a legfontosabb szerepet, mivel főként Samba szerver fut a gépen. Minden fájlrendszer ext3 relatime,data=writeback mount opciókkal.

Nagyméretű (nx10 GB-os) fájlok tárolása a fő feladat (főként írási műveletek történnek), és úgy vettem ki, hogy hosszútávon ~170MB/s-mal lehet fájlokat olvasni a /home-ról, és ~75MB/s-mal lehet írni rá. 1Gb/s kapcsolattal rendelkező Windows Server 2008-cal csatlakoztam a Samba szerverhez, és kipróbálam, milyen sebességgel tudok írni/olvasni rá. A Windows Intézővel mindkét irányban 100%-ra (~110MB/s) tudtam terhelni a Sambát (íráskor persze a szoftveres cache megtelése után ez visszaesett ~75MB/s-ra).

A Total Commander azonban csak 75MB/s-mal tud olvasni a szerverről, kivéve, ha leállítok egy másolást, majd újrakezdem, mert ilyenkor ez is megy ~110MB/s-mal egy darabig (A Windows Intéző még nem olvasott fájlnál is teljes sebességgel megy). Ugyanakkor ha a Total Commander-rel egy másik Windows Server 2008-hoz csatlakozok, ugyanolyan gyorsan tud róla olvasni a kezdetektől, mint az Intéző a Sambás megosztásról.

Próbálkoztam az smb.conf-ban az 'aio read size', 'use sendfile' és 'socket options' paraméterek állítgatásával, de nem sikerült megoldani a problémát. Úgy tűnik, mintha a Total Comander valami olyamit mondana a Sambának, amitől az valahogy visszafogottabb sebességgel olvassa be a lemezről a fájlokat. Vajon mi lehet ez? BTW. a Samba verziója 3.2.7, a Total Commanderé 7.50.

Előre is köszi a segítséget!

Hozzászólások

A Total Commanderben lehet állítgatni, hogy mekkora buffereket használjon, illetve azt is, hogy a saját algoritmusa helyett az windows api-t használja másolásra (ie. ugyan azt, amit az intéző is használ).
TC-t két éve láttam utoljára, akkor legalábbis lehetett ezeket állítgatni.

Amúgy a 75 MB/sec nem olyan rossz szerintem, azt próbáld inkább ki, hogy 2-3 gépről másolj rá egyszerre, akkor.
Szvsz érdemesebb lenne inkább erre rágyúrni, tehát hogy ne essen le drasztikusan a sebesség több párhuzamos másolásnál.
(Feltéve, ha többen fogjátok egyszerre használni).

Meg aztán a RAID5 nem túl jó írásra....

Amúgy a 11 lemez + RAID5 + 1 spare disk megoldás helyett nem gondolkoztál inkább 12 lemezes RAID6-ban?
Ha kiesik a RAID5-ből egy lemezed, akkor mi ugye elkezd syncelni a spare-ra, de mivan, ha közben kiesik még egy lemez?
1TB-t átsyncelni azért nem kis idő...
RAID6 esetén ez nem áll fenn, ha kiesik egy lemez, nincs semmi gond, mert kettő kiesését bírja el.
Ha kiesik a másidik, akkor sincs semmi gondod.
Tehát azt akarom magyarázni, hogy RAID5+spare esetén, ha egy lemezed kiesik, akkor potenciálisan megugrik a veszély a tömb elvesztésére, míg ha RAID6 esetén kiesik egy lemez, egyáltalán nem fenyeget akkora veszély a tömb elvesztésére, mint RAID5+spare eetében.
Talán az olvasási sebességeidre is jótékony lesz, hogy 12 lemezed lesz a tömbben...
(Ha a kontroller nem tud RAID6-ot, akkor felejtsük el, amit mondtam. :) )

Legjobb tudomásom szerint a vezérlő sajnos nem tud RAID6-ot. Már én is rájöttem, hogy írásra nem a legjobb a RAID5 (igaz, egyelőre még simán elegendő ez a teljesítmény), de adatbiztonság és tárhelyméret szempontjából még most is úgy gondolom, hogy elfogadható. Persze lehet, hogy megváltozik a véleményem.

"de adatbiztonság és tárhelyméret szempontjából még most is úgy gondolom, hogy elfogadható."
Valahol azt olvastam, hogy 6-8 lemezig még so-so OK a RAID5, afelett már csak akkor, ha Istennel nagyon jó kapcsolatot ápolsz, napi 2-3 ima útján. :)

Esetleg el lehet még gondolkozni azon, hogy nem hardweres RAID-et csinálsz, hanem feltesel egy solarist/freebsdt, és zfs raidz2 -t használsz.
Evvel eliminálod a RAID5/6 írási lassúságát is, a zfs raidz, raidz2 implementációban nincs read-modify-write, meg a RAID5 write-hole-t is eliminálod.
( http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_5_performance )
( http://en.wikipedia.org/wiki/Non-standard_RAID_levels#RAID-Z )
"RAID-Z avoids the RAID 5 "write hole"[6] by its copy-on-write policy: rather than overwriting old data with new data, it writes new data to a new location and then atomically overwrites the pointer to the old data. It avoids the need for read-modify-write operations for small writes by only ever performing full-stripe writes; "

Hogy teljesít a rendszered 2-3 egyidejű TC másolásnál amúgy? (természetesen külön-külön kliensekről)

Kipróbáltam az Exploreren keresztüli másolást a TC-ban, és természetesen tényleg sikerült elérni a tartós 1Gb/s sebességet. A bufferes dologgal is próbálkoztam, az nem segített, igaz, nem állítottam a bufferméreten, csak bekapcsoltam, és kész. Mit csinálhat a TC, ami a Sambát ilyen önmérsékletre bírja? Ha nagyon unatkozom majd, esetleg belenézek a Samba logokba.

Köszi az egyszerre több szállal való tesztelés ötletét, remélem lesz időm kipróbálni a közeljövőben.

Hát, nem hiszem, hogy annyi energiát belefektetek. Én csak a szerver gazdája vagyok, a klienseken nem nagyon akarok buherálni, saját Windowsom meg nincs. Mondjuk érdekelne, hogy mi az oka a problémának, de amennyire működik, az már kb. elfogadható, kísérletezgetni nem nagyon van kedvem.