PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Samba Performance mies :-(



linuxluke
22.10.05, 09:26
Hi,

ja, bitte nicht steinigen.
Komme nicht weiter.
Habe schon eine Menge Dinge gelesen und probiert....

Habe einen
P4, 2,8 mit 1GB Ram, ASUS Board mit Intel GBit on Board,
3 x 160er Samsung im Raid5,
Kernel 2.6.13-1

Ich bekomme aber gerade mal ca +/- 30MB/s über mein GBit Lan.

Jede Platte einzel kann aber bereits mehr als 50MB/s.
Ist das normal ?
Kann mir nicht vorstellen das die Raid5 Verwaltung so viel Speed fressen kann...
Die Auslastung ist dabei gerade mal bei 30%.
Der Performance Monitor unter Windoof zieht immer mal richtig gut an und fällt dann wieder kurz ab.
Ich bin der Meinung ich hatte früher über 100MBit konstantere Werte, allerdings auch 100MBit typisch sehr viel geringere
Achja, auf dem Windoof Rechner ist es auch eine Intel GBit Karte und dazwischen ein 3Com GBit Switch.

Auch hatte ich mit dem Kernel 2.6.8 weniger Probleme beim NFS Server.
Habe 3 DBOX2 die über NFS aufnehmen und abspielen. Das gin gmit dem 2.6.8er super, aber jetzt mit dem 2.6.13 ruckelt es auf einmal.
Da hab ich gemerkt das es immer wieder kurze Hänger bei der Datenübertragung gibt.
Geh ich wieder zurück auf 2.6.8 geht alles wieder (bis auf die Apic Errors die ich dann wieder habe).

Hat da jemand ne Idee ?
Danke
Bye
LinuxLuke

mamue
22.10.05, 13:44
Die Ursachen können vielfältig sein.
Betrachte erst einmal einen bestimmten Client und den Server:
Wie ist die Transferrate per FTP (liegt es an samba)? Dazu reicht es natürlich nicht, nur eine kleine Datei zu übertragen, das sollte man schon ein paar mal wiederholen und die Daten sollten insgesamt größer sein als der Hauptspeicher.
Wenn die Transferrate schlecht ist:
Wenn Du noch einen PC hast, miss die Transferrate zwischen den beiden PC, wenn die gut ist, liegt es am Server (Kernel, Karte, Treiber...), sonst an einem der Clients oder am Switch.

Auf diese Art sollte sich das weiter eingrenzen lassen. Es hat meist wenig Sinn, unsystematisch vorzugehen.

HTH,
mamue

bla!zilla
24.10.05, 10:37
Eine langsame Netzwerkperformance kann mehrere Gründe haben.

- Treiber der NIC
- verwendetes Protokoll
- I/O Subsystem
- Komponenten zwischen den einzelnen Clients
- Dinge wie Verschlüsselung, Protokollumwandlung usw.
- Kernelkonfiguration

Zu deiner Konfiguration:

SAMBA, bzw. das SMB Protokoll, war noch nie ein Performancewunder. Besser ist FTP. Geht deutlich fixer. Du verwendest ein RAID 5. RAID 5 ist zum schreiben auch eher suboptimal (kommt von der Art wie RAID 5 arbeitet, Stichwort "write penalty".) Du solltest vielleicht mal einen älteren Kernel verwenden oder die Treiber der NICs unter Windows aktualisieren.

linuxluke
24.10.05, 17:41
Hallo,

ich freue mich das ich inzwischen den 2.6.13-1 laufen habe, ohne Fehlermeldungen etc. zu bekommen.
Ich würde nur ungern wieder einen alten nehmen und mit APIC Error´s leben wollen.
Ich werde demnächst vieleicht schauen on die NAPI Funktion was bringt...
Da sagte einer es könnte etwas besser werden.

Aber im Moment scheint der e1000 Treiber für die Intel NIC eh zu spinnen.
Dessen Performance bricht immer wieder kurz ein.
Meine Dboxen z.B. kriegen mit dem 2.6.13er Kernel und dem dabei enthaltenen e1000 Treiber keinen konstanten Stream mehr hin, immer wieder ruckeln.
Die hab ich jetzt auf eine 100MBit 3Com mit nem eigenen Switch geküppelt.
Damit geht es dann wieder wunderbar.
Mit dem Treiber der beim 2.6.8er Kernel dabei war, ging das alles auch mit dem Intel NIC ohne Probleme.
An dem waren sogar noch mehrere PC´s dran ohne das da was muckte.

Dann ist es auch noch so:
Solange ich auf den Server schreibe und alles noch im Ram abläuft, habe ich zwischen 50 und 60MB/s auf das Sambashare.
Und dann wenn er richtig anfängt zu schreiben bricht er ein auf die besagten ca 30 MB/s.
Das wundert mich sehr.
Wenn das SMB Protokoll an sich die Daten mit bis zu 60 MB/s handeln kann, warum krieg ich die nicht auf die Platte ?
Ich bekomme ja noch nicht mal die Performance "einer" Platte.
DMA ist an.
Bye
LinuxLuke

marce
25.10.05, 12:44
Software-Raid?

linuxluke
25.10.05, 12:53
Hi,
so kurz und knapp wie du frägst, habe ich die Befürchtung das du gleich als Antwort schreibst.

Selbst schuld :) :) :)

Frisst das Software Raid (lvm/mdadm usw.) wirklich so viel Leistung ?
Ich hatte unter Windoof schon mit einem Onboard Controller über 50MB/sek.
Und das mit 2 nicht ganz so schnellen Platten.

Bye
LinuxLuke

basstscho
26.10.05, 22:54
Hallo linuxluke,

ich habe auch einige Server am laufen, die ein Software Raid 5 haben. Die komme aber alle so an die 80 - 100 MB/s hast mal überlegt, ober der limitierende Faktor die Festplatte im Windowsrechner ist? Wenn da auch keine räte SCSI oder ein gescheides Raid drinne hängt, dann kannst du den test so natürlich vergessen...

Grüße Johannes

linuxluke
27.10.05, 01:18
Jops, Windoofplattenspeed....

Im Moment ist da auch ne 160er Samsung drinne.
Die sollte auch mehr als 30MB/s bei einem 1GB File können oder ?
Dann hab ich da 2 GB Ram drinne und wenn ich da kurz hintereinander eine 1GB grosse Datei kopiere sollte es schon etwas schneller gehen, da die Platten LED realtiv stille ist.....
Der PerfMon sagt mir auch das erst gegen Ende des Files von der Platte gelesen wird.

Und dann gibts ja noch den Weg vom Server auf den Server....

Auch wenn ich da wegen den konkurierenden Zugriffen nicht das Optimum haben kann, sollte das doch mehr als 30 MB/s sein oder ?

Aber ich werde mir in den Windoof rechner, sobald ich wieder 2 schnelle Platten übrig habe ein stripe bauen und dann nochmal schauen....

bye
linuxLuke

bla!zilla
27.10.05, 08:15
Du scheinst bei der Performance eines zu vergessen: Die write-penalty (Paritätsdaten müssen vor dem Schreiben erstmal gelesen, berechnet und geschrieben werden, zusätzlich dann noch die eigentlichen Datenblöcke und das alles auf verschiedenen Platten)von RAID 5. RAID 5 kommt seit jeher nicht auf die volle Performance einer Platte beim schreiben. Wenn du schnell Daten wegschreiben musst wäre ein RAID 1 (oder was in der Art, also 1+0 oder 0+1) besser.

Möglicherweise rächt sich gerade jetzt das RAID 5 wo du mit Gigabit mal richtig Daten auf die Platten pumpst.

basstscho
27.10.05, 09:06
So würde ich das testen:

Pack ein 10GB File auf den Server und zieh mit doevielen rechnern wie du hast...dann kannst du herausfinden, wie schnell der Server wirklich ist. Von einem zum anderen (wenn der anderer Rechner net grad richtig schöne SCSI Platten oder so hat, kann man eigentlich vergessen...

Grüße Johannes

mamue
29.10.05, 13:37
Du scheinst bei der Performance eines zu vergessen: Die write-penalty (Paritätsdaten müssen vor dem Schreiben erstmal gelesen, berechnet und geschrieben werden, zusätzlich dann noch die eigentlichen Datenblöcke und das alles auf verschiedenen Platten)von RAID 5.

Möglicherweise rächt sich gerade jetzt das RAID 5 wo du mit Gigabit mal richtig Daten auf die Platten pumpst.

Darf ich hier noch mal interessehalber dazwischenhaken?
Das bedeutet also bei einem Schreibvorgang:
Blöcke schreiben,
Blöcke lesen und Parität berechnen
Parität schreiben.
Wenn ich keinen "echten" RAID5 Controller habe, gehen die Datenmengen dabei jeweils über den Systembus, sehe ich das richtig?
Der entstehende Engpaß müsste demnach ganz gut mit top als "wa" zu sehen sein, oder?

Danke,
mamue

bla!zilla
31.10.05, 09:50
Darf ich hier noch mal interessehalber dazwischenhaken?
Das bedeutet also bei einem Schreibvorgang:
Blöcke schreiben,
Blöcke lesen und Parität berechnen
Parität schreiben.
Wenn ich keinen "echten" RAID5 Controller habe, gehen die Datenmengen dabei jeweils über den Systembus, sehe ich das richtig?
Der entstehende Engpaß müsste demnach ganz gut mit top als "wa" zu sehen sein, oder?


Fast. Das sieht wir folgt aus:

1. Daten und Parity lesen
2. Parity berechnen
3. Parity und Daten schreiben

Den Engpass müsstest du bei einem Software-RAID eigentlichen sehen, sofern entsprechend Last auf dem RAID ist.

linuxluke
31.10.05, 10:32
Hi,

ich habe mal geschaut....im top...
Ab und zu ist die "wa" auf gut 50% Last.
Ein Prozess [md1_raid5] erscheint auch immer wieder mit ordentlich Last...

Scheint also wirklich so zu sein das das raid5 alles frisst.
Obwohl noch durchaus 30% und mehr cpu reserve da sind.

Das hatte ich mir nicht so extrem vorgestellt.

Wie gesagt ich werde sobald ich wieder mehr Platten da habe den Windoof Rechner erweitern und dann auch mal im Server ein Stripe und eine Solo-Platte testen.
Und dann mal schauen was dabei rauskommt, auch wenn ich mit mehreren Clients gleichzeitig das ganze teste.
Danke.
Bye
LinuxLuke

mamue
31.10.05, 10:46
Den Engpass müsstest du bei einem Software-RAID eigentlichen sehen, sofern entsprechend Last auf dem RAID ist.
Danke für die Klarstellung.
Ich vermutete die Probleme deshalb, weil linuxluke über "kurze Hänger bei der Datenübertragung" klagte. Wenn beim schreiben großer Datenmengen die Daten zweimal über denselben Bus rauschen müssen, über den sie auch über die Netzwerkkarte eingehen, passen die Symptome IMHO ganz gut. Vielleicht würde das bei getrennten Bus-systemen, etwa PCI für das Netzwerk und PCIe für das RAID-5 besser funktionieren.
@linuxluke: "wa" zeigt AFAIK an, daß oder in wieweit ein Prozess auf die Freigabe von I/O-Ressourcen wartet.
Das hat wenig mit der CPU-Leistung zu tun.

mamue

bla!zilla
31.10.05, 12:17
Danke für die Klarstellung.
Ich vermutete die Probleme deshalb, weil linuxluke über "kurze Hänger bei der Datenübertragung" klagte. Wenn beim schreiben großer Datenmengen die Daten zweimal über denselben Bus rauschen müssen, über den sie auch über die Netzwerkkarte eingehen, passen die Symptome IMHO ganz gut. Vielleicht würde das bei getrennten Bus-systemen, etwa PCI für das Netzwerk und PCIe für das RAID-5 besser funktionieren.


Die beste Performance erreicht man bei RAID immer noch durch die Kombination dedizierter Controller + richtiges RAID-Level für den Anwendungsfall. RAID 5 oder RAID ADG (auch bekannt als RAID 6 oder RAID 5DP) ist für Datenbanken witzlos, für Fileserver mit einer Last von 30% Schreiben und 70% Lesen aber wieder ganz interessant.

linuxluke
02.11.05, 14:54
Hallo,

so, hab den Server jetzt mal gegen 2 x 200er SATA als Raid 0 im Windoofrechner getestet.

Auf dem Windoof Stripe komme ich lesen und schreiben gleichzeitig auf ca 26MB/s


Vom Stripe lesen auf samba-share schreiben,
ca. 36MB/s bis 40MB/s in der spitze und 20 - 30 % systemlast und ab und zu 60% bis 80% wa als spitzenwerte-nicht permanent !
über ftp sind es ca. 40mb/s

Lesen vom sambashare und schreiben auf das windoof stripe, mit ziemlich konstanten 30 - 40% wa und 15% system bei gerade mal 23mb/sek.
über ftp sind es ca. 29mb/s

eine 500mb datei aus dem home dir, das liegt auf einem raid1, hole ich ca 50 mb/s, das kann aber auch sehr gut nur aus dem ram des servers kommen.......
Über ftp hol ich die 500mb mit 60mb/s. Leider ist das homedir nicht größer, da der user kein größeres braucht.

Sieht also wirklich so aus als ob das raid die Performance frisst....
jetzt müsste ich zum spass mal ein Stripe auf dem server einrichten und schauen......oder ?

Aber irgendwie passt das doch nicht....
ich schreibe schneller in das raid5 als ich daraus lesen kann ?
Die Parity ist doch beim lesen egal ? oder...

Anmerkung Bussysteme....
auf dem Server als auch auf dem Win Rechner ist die Ntzwerkkarte über CSA, also getrennt vom PCi Bus angeknüppelt....
Die großen Performanceeinbrüche hatte ich beim jetzigen Test nicht mehr.

Bye LinuxLuke