Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Samba in einer Richtung extrem langsam

Alles rund um die Server (Web-, Mail-, Datenbank-, Datenaustausch-, etc.) die man unter Linux betreiben kann

Moderator: Moderatoren

Benutzeravatar
Kurt M
Hacker
Hacker
Beiträge: 407
Registriert: 24. Sep 2004, 12:39
Wohnort: Bayrischer Wald
Kontaktdaten:

Samba in einer Richtung extrem langsam

Beitrag von Kurt M » 2. Dez 2005, 02:19

zum langsamen Samba gibt es ja schon haufenweise Beiträge. Leider haben sie alle nicht geholfen, vielleicht ist das hier anders:

Auf einem PC mit Suse 9.3 (alle Updates am neuesten Stand, keine unstables) läuft Samba, angeschlossen ein Win2000 PC.

Irgendwann fiel mir auf, dass die Datenübertragung sehr langsam wurde.
Um festzustellen ob es an Windows liegt, habe ich einen zweiten Suse (10.0) PC angeschlossen, und mit dessen Samba-Client eine Verbindung zum Suse 9.3 Samba-Server hergestellt. Die Übertragung ging genauso langsam wie unter Windows, also liegt es am Samba-Server.

Das lustige ist, dass es nur in einer Richtung so langsam ist:
Samba-Server -> Client : nur 0,4 MByte/s
Client -> Samba-Server: 12 MByte/s

mit NFS läuft die Verbindung in beiden Richtungen mit über 20 MB/s, also liegt es auch nicht an der Hardware.

Dann habe ich mit ethereal das Protokoll gecheckt. Alle Daten sind OK, jedoch sieht man am Zeitstempel, dass die Verbindung genau 1x in der Sekunde für fast 1 Sekunde aussetzt. Also 2ms lang rauschen Daten über die Leitung, dann 998ms nichts. Das sieht man auch an der LED am Router. Dieser Takt ist übrigens sehr exakt 1 Sekunde.

Für die Protokollfreaks noch eine Info:
Im Ethereal Protokoll (aufgezeichnet am Client):

der langsame Server>Client:

Code: Alles auswählen

< SMB-Read-Request
> TCP-Segment
> TCP-Segment
> SMB-Read-Response
< TCP-ACK
mit einem anderen Suse 10 PC, wo alles perfekt schnell läuft, sieht die gleiche Datenübertragung so aus:

Code: Alles auswählen

< SMB-Read-Request
> SMB-Read-Respone
> NBSS-Continuation
> NBSS-Continuation
< TCP-ACK
Hier ein Auszug aus der smb.conf:

Code: Alles auswählen

[global]
        workgroup = ARBEITSGRUPPE
        printing = cups
        printcap name = cups
        printcap cache time = 750
        cups options = raw
        printer admin = @ntadmin, root, administrator
        username map = /etc/samba/smbusers
        map to guest = Bad User
        include = /etc/samba/dhcp.conf
        logon path = \\%L\profiles\.msprofile
        logon home = \\%L\%U\.9xprofile
        logon drive = P:
        add machine script = /usr/sbin/useradd  -c Machine -d /var/lib/nobody -s /bin/false %m$
        domain logons = Yes
        domain master = Yes
        local master = Yes
        netbios name = kmserver
        os level = 65
        preferred master = Yes
        security = user
... dann die üblichen Freigaben, sehen so aus wie immer...
am Schluss steht noch das, keine Ahnung was das zu bedeuten hat:
[netlogon]
        comment = Network Logon Service
        path = /var/lib/samba/netlogon
        write list = root
irgendeine Idee was das sein könnte, oder was ich noch nachprüfen sollte ?

Danke

Werbung:
Benutzeravatar
Frankie777
Advanced Hacker
Advanced Hacker
Beiträge: 916
Registriert: 30. Apr 2005, 23:22

Beitrag von Frankie777 » 2. Dez 2005, 11:57

Es gibt zwar Beiträge zu "Samba und langsam" nur ist Samba eigentlich nie die Ursache. Samba ist mindestens genauso schnell wie Windows, wenn nicht sogar schneller.

Hast Du ein GBit Netzwerk oder wie erreichst Du diese Übertragungsraten?

Wie so oft ist auch hier Windows das Problem. Evtl. hat MS das Produkt kastriert damit es nicht so als Virenschleuder dienen kann, zweifelhafte Programme und Tips aus zeitschriften haben das OS beschädigt oder OnAccess Virenscanner tun ihre Arbeit.

Ich habe leider den Link nicht mehr aber hier ist die Erklärung für dieses Verhalten.


--
But, strange to say, data packets are dropped accidentally on a Windows machines with a particular Network Interface Card (NIC). It can be because of NIC, NIC driver, Winsock, or Windows itself, but I have not found the reasons. Even if Receive Buffer Size is large enough, some packets will be dropped.
When a data packet is dropped, a resend request is transmitted. This resend request is performed by transmitting several Ack packets showing that reception up to how many bytes is completed .
Samba (to be strict the TCP driver of a Unix machine running Samba) will anyway resend a packet in response to such Ack packets.
As it is just one packet that Windows has dropped, when data has reached from Samba, Ack will proceed by several packets at a time. Then after a while (i.e. only 15 msec or so) Windows will drop a packet again.
After these things were repeated several times, TCP layer of Samba will anticipate as follows:
"Some packet's arraival might be delayed for some reasons. Let's wait for a while for delayed Ack packet".
Then, it will try to send nothing for about one second. Eventually,the condition does not become better, and Samba's TCP layer will decide to resend a data packet.
If Windows machine will cause this problem, data transmitting will occur for 0.1 - 0.3 seconds and then wait for 1 second, repeatingly. Moreover, this value of one second will actually become bigger each time of waiting. Consequently, the effective transfer speed become 1/20 of the real speed that should be obtained.

Benutzeravatar
Kurt M
Hacker
Hacker
Beiträge: 407
Registriert: 24. Sep 2004, 12:39
Wohnort: Bayrischer Wald
Kontaktdaten:

Beitrag von Kurt M » 2. Dez 2005, 12:07

ja, es ist ein Gigabit Netzwerk.

Deine Beschreibung klingt sehr nach dem Fehler, diese 1 Sekunden Delays.

Nur ist es bei mir nicht Windows. Ich habe es auch mit 2 Linux PCs getestet, wobei einer als Samba-Client arbeitet (als Ersatz für den Windows PC), was zum gleichen Fehler führt.

Benutzeravatar
Frankie777
Advanced Hacker
Advanced Hacker
Beiträge: 916
Registriert: 30. Apr 2005, 23:22

Beitrag von Frankie777 » 2. Dez 2005, 12:21

interessant!
Dann die Treiber der Netzwerkkarten prüfen/aktualisieren.
PS: Was für Karten hast Du denn?
Testweise eine andere Karte/Treiber testen

ansonsten man smb.conf
siehe socket options

knarf0007
Newbie
Newbie
Beiträge: 4
Registriert: 4. Dez 2005, 12:34
Wohnort: Wuppertal

Beitrag von knarf0007 » 4. Dez 2005, 13:20

Hallo Zusammen,

ich habe genau das gleiche Problem. Mit dem kleinen Unterschied, dass ich erschrekenderweise mit Windows (XP) in beiden Richtungen gute Transferraten (17-20 MB/s) erziele. Auf dem selben Rechner (also exakt gleiche Hardware, NC D-LINK 530T) befindet sich mein Hauptarbeitsplatz (SUSE 10.0) und hier zeigt sich das oben beschriebene Verhalten:

Samba Client Linux -> Samba Server: gute Performance
Samba Server -> Samaba Client: miserable Performance max. 1MB/s
(per NFS ist die Performance in beiden Richtugen gut!)

Mein SAMBA-Server läuft unter SUSE 10.0

Hier die global section meiner smb.conf:

[global]
workgroup = WORKGROUP
server string = Knarf Server
security = share
guest account = nobody
browseable = yes
guest ok = yes
public = yes
writeable = yes
read only = No
# socket options = TCP_NODELAY
# read prediction = yes
# read raw = yes
# write raw = yes
# getwd cache = yes
# fake oplocks = no
# oplocks = yes

Habe alle "ausgesternten Optionen" in verschiedensten Permutationen durchprobiert - leider ohne Erfolg. Für sachdienliche Hinweise aller Art währe ich extrem dankbar!

Gruß
knarf0007

jengelh
Guru
Guru
Beiträge: 4039
Registriert: 20. Nov 2004, 17:42
Kontaktdaten:

Beitrag von jengelh » 4. Dez 2005, 20:35

Sucht mal im Kernel-Log nach "transmit time out" oder "timed out". Hatte auch mal ne VIA Rhine II die das aus heiterem Himmel machte.

knarf0007
Newbie
Newbie
Beiträge: 4
Registriert: 4. Dez 2005, 12:34
Wohnort: Wuppertal

Beitrag von knarf0007 » 4. Dez 2005, 23:29

Danke für den Hinweis, leider konnte ich keine entsprechenden Meldungen finden. Die D-LINK 530T benutzt das Modul sk98lin. Meine erste Vermutung war auch, dass der Treiber noch nicht ausgereift bzw. fehlerhaft ist. Allerdings funktioniert der Zugriff per NFS in beiden Richtungen gleichermaßen gut. Irgendwie passt das alles noch nicht zusammen. Die Karte wird mit folgenden Einstellungen gestartet:
eth0: network connection up using port A
speed: 1000
autonegotiation: yes
duplex mode: full
flowctrl: symmetric
role: slave
irq moderation: disabled
scatter-gather: enabled
tx-checksum: enabled
rx-checksum: enabled

Ist das so o.k.?

Gruß
knarf0007

Benutzeravatar
Kurt M
Hacker
Hacker
Beiträge: 407
Registriert: 24. Sep 2004, 12:39
Wohnort: Bayrischer Wald
Kontaktdaten:

Beitrag von Kurt M » 5. Dez 2005, 00:57

@knarf0007:

interessant dass es mit XP geht, das musste ich sofort auch ausprobieren, da es mit Win2000 bei mir nicht geht.

Und sieht da, mit WinXP ist die Übertragung tatsächlich normal schnell. Nur mit einem Win2000 oder einen Linux-Samba Client ist es langsam.

Mit einer Einschränkung: unter XP ist die Datenübertragung zwar schnell, aber das Öffnen von Verzeichnissen am Server ebenfalls quälend langsam.

Da bei mir W2000 und W-XP und Linux alles am gleichen PC läuft (vmware) und daher auch die gleiche Hardware und identische Treiber benutzen, bleibt als Fehler nur mehr die Samba-Serversoftware bzw deren Konfiguration übrig.
Ohne zu wissen was man tun soll, ist es aber ziemlich aussichtslos die richtige Einstellung zu finden, das wäre als würde man einen 6er im Lotto gewinnen.

Ich habe auch schon einen Downgrade des Sambaservers auf die DVD-Version gemacht (weil es früher ja funktionierte), was aber leider nichts gebracht hat.

runlevel5

Beitrag von runlevel5 » 5. Dez 2005, 02:28

Kurt M hat geschrieben:bleibt als Fehler nur mehr die Samba-Serversoftware bzw deren Konfiguration übrig.
Wenn du mal genau hinschaust siehst du, das du dir selbst widersprichst.
Kurt M hat geschrieben: Ich habe auch schon einen Downgrade des Sambaservers auf die DVD-Version gemacht (weil es früher ja funktionierte), was aber leider nichts gebracht hat.

Benutzeravatar
Kurt M
Hacker
Hacker
Beiträge: 407
Registriert: 24. Sep 2004, 12:39
Wohnort: Bayrischer Wald
Kontaktdaten:

Beitrag von Kurt M » 7. Dez 2005, 00:18

jetzt hab ich noch ein paar Stunden hineingesteckt, man hat ja sonst nichts zu tun :wink:

Server: Suse 9.3 oder 10.0 (ist egal) funktioniert beides

Client:
Suse 9.3 ... läuft mit guten 12 MB/s
Suse 10.0 ... läuft mit nur 0,5 bis 1,0 MB/s

um das ganze noch genauer zu untersuchen, habe ich auf einer freien Partition eine jungfräuliche Installation, sowohl von 9.3 als auch von 10.0 gemacht.

Ergebnis: mit 9.3 klappt es immer, mit 10.0 klappt es nie.

Ich muss also meine vorherige Vermutung widerrufen, es ist tatsächlich der Client, und hier nur eine Suse 10.0 Installation, bei der Samba extrem langsam läuft.

Da knarf0007 das gleiche Problem hat, liegt jetzt die Vermutung nahe, dass der Suse 10.0 Samba-Client ein Problem hat.
Auch wenn es unüblich ist, dass man zwei Linux PCs über Samba verbindet, wäre es doch interessant ob das noch jemand mit Suse 10.0 ausprobieren könnte.

knarf0007
Newbie
Newbie
Beiträge: 4
Registriert: 4. Dez 2005, 12:34
Wohnort: Wuppertal

Beitrag von knarf0007 » 7. Dez 2005, 07:56

@KURT M
Danke, da hast Du Dir ja echt Mühe gemacht des Rätsels Lösung zu finden.

Super, ich bin erst vor kurzem von SUSE 9.3 auf 10.0 migriert, bei gleichzeitiger Umrüstung der Hadware auf GB-Ethernet. Der alte Grundsatz "Never change a running System" scheint sich wieder einmal zu bestätigen. :? Sollte man den Samba Entwicklern evt. irgendeinen Hinweis geben? Vielleicht ist das Problem mit einem kleinen Patch zu beheben. Ich werde erst mal etwas abwarten und dann im Zweifelsfall einen Downgrade vornehmen.
Davon abgesehen finde ich die Lösung unter Linux auf ein Samba-Server zuzugreifen in einer heterogenen Client-Landschaft schon sinnvoll.

Gruß
knarf0007

matibaer
Newbie
Newbie
Beiträge: 3
Registriert: 17. Feb 2006, 17:43

Beitrag von matibaer » 17. Feb 2006, 17:53

Bei mir ist es schon länger her, dass ich von SuSE Linux 9.1 auf SuSE Linux 10 umgestiegen bin (Neuinstallation).

Erst danach kaufte ich mir ein Gigabit-Switch (Marvel Gigabit NIC OnBoard).

Von WinXP->WinXP-PC lief es recht zügig (44 MB/s Schnittstelle->Schnittstelle, 20 MB/s von HD PC1 -> HD PC2).

So setzte ich einen SAMBA-Mountpoint auf eine Windows-Freigabe und kopierte Dateien in mein Homedrive auf dem Linux-PC.

Das maximal Mögliche bei sämtlicher Optimierung lag bei ca. 7 MB/s.


Ich kaufte mir extra Cat6-Kabel und eine Intel Pro1000 für die Linuxkiste.

Die Kat6-Kabel hätte ich mir als erstes schenken können.
Bei den modernen SOHO-Switches ist es drietens-egal, ob ich Cat5, Cat5e oder Cat6-Kabel (verm. auch Cat7) verwende, das macht überhaupt nichts, zumindest nicht im realtistischen Geschwindigkeitsbereich.

Mit der Pro1000 erreichte ich in reiner Windows-Umgebung ungefähr die gleichen Werte, vielleicht 1 MB/s mehr.

Unter Linux (Samba-Client) erreicht ich nun bis zu 12 MB/s.
Das ist ja 100 MBit/s-Netzwerke ganz gut, aber hat mit 1000 MBit/s nichts zu tun.

Am Ende glaubte ich, es sei das Interrupt-Management von Linux, aber es hat sich gerade etwas anderes bestätigt.


Ich installierte einen FTP-Server auf der WinXP-Kiste und transferierte unter Linux via FTP ein paar Dateien auf den XP-PC und von den XP-PC zum Linux-PC.
In beide Richtungen erreichte ich 29 MB/s.

Also ist´s nun klar, es liegt am Samba-Client, bzw. an Samba unter SuSE Linux 10.0

Tolle Wurst - seit Monaten muss es schon so sein und keiner hat eine Lösung
Wie wär´s mit einem Patch ?

Naja, bei SuSE läuft sowieso nicht mehr viel (Positives für Endkunden), seit Novell seine Hände drauf hat.
Was da bei 10.0 alles aus rechtlichen (bezahlpflichtigen) Gründen fehlte...


Eventuell hat ja irgendeiner mal eine brauchbare Lösung ?!

strikegun
Newbie
Newbie
Beiträge: 34
Registriert: 16. Apr 2005, 17:29
Wohnort: Göttingen
Kontaktdaten:

Beitrag von strikegun » 11. Mär 2006, 19:23

hi ich habe ein vielleicht so ähliches problem.
Mit suse10 ist die transfer rate fürn arsch.

Eine große Datei (sagen wir mal 700MB) über Samba mit gigbitlan beträgt die rate ca 1,5~6 MBs. Breche ab.
nun komsich ist das wenn ich die selbe datei mal mit FTP ziehe liegt es bei 16MB/s. Breche wieder ab
dann ziehe ich mir die Datei wieder über Samba und da hab ich bis zur stelle wo ich mit FTP zog 40MB/s und dann bricht es wieder ein und zieht wieder mit ~5MB/s dannam ende legt er wieder zu und geht wieder rauf auf 34 MB/s

Das ganze konnte ich z.b 2x reproduzieren und das mit 2 unterscheidlichen Dateien.

FS ist ReiserFS

Yehudi
Guru
Guru
Beiträge: 2152
Registriert: 21. Jan 2004, 13:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Yehudi » 12. Mär 2006, 11:41

Ich kann zwar kein Lösung bieten, aber bei mir ist der Transfer in Ordnung, solange es um ene interne Festplatte geht in Ordnung, nur bei der USB 2 Festplatte happert es manchmal, da dauert das raufkopieren meistens lange, das liegt aber nicht an Samba, sondern wohl an der Einbindung der Platte, unter SuSE 9.x geht das wunderbar.
Wenn ich die internen Platten mit NFS vergleiche, dann geht es zwar ein bisschen fixer bei NFS, aber es ist OK.
Allerdings nutze ich OS X als Client.

Dr. Glastonbury
Advanced Hacker
Advanced Hacker
Beiträge: 1149
Registriert: 20. Aug 2004, 12:27
Wohnort: München
Kontaktdaten:

Beitrag von Dr. Glastonbury » 12. Mär 2006, 15:17

Ich hab auch keine Lösung, dafür ein noch interessanteres Problem - ebenfalls mit der Geschwindigkeit.

Gleich vorweg ich will hier keine Hilfe dafür - so dringend ist es nicht mehr - aber vielleicht können das hier die anderen auch mal Probieren.

Also ich hatte auf nem XP-PC n haufen kleine und große Dateien (so an die 2000 stück mit etwa 4MB bis hin zu 1GB) und die jeweils in viele Ordner untergliedert.

Immer wenn ich den Überordner (in dem die ganzen Unterordner mit den Dateien lagen) kopieren wollte wurden lediglich die Ordner angelegt, dann ein bisschen rübergeladen und dann mit einem Fehler abgeschlossen. Die Übertragungsrate war dabei EXTREM langsam - unter 1MB/s bei einem 100MBit/s Netzwerk.

Dann hab ich mal zwei Unterordner GLEICHZEITIG kopiert und plötzlich ging die Geschwinidigkeit auf 4MB/s pro Kopierfenster hoch. In dem Moment wo einer der beiden Kopiervorgänge abgeschlossen war wurde der zweite wieder langsam und brach schließlich mit ner Fehlermeldung ab ( die angegebene Ressource konnte nicht gefunden werden ). Ich denke eigentlich nicht, dass es an Windows lag, denn schließlich hatte ich ja zuvor die Dateien mit Linux erst auf den Win-Rechner geladen.

Ähnliche Geschwindigkeiten erhielt ich auch beim Lesen und Schreiben auf ein Windows98 beim Backupmachen.... kA was da also los ist :?
Das Leben: hasse oder ignoriere es, lieben kannst du es nicht.

strikegun
Newbie
Newbie
Beiträge: 34
Registriert: 16. Apr 2005, 17:29
Wohnort: Göttingen
Kontaktdaten:

Beitrag von strikegun » 16. Mär 2006, 15:32

Mir ist immer aufgefallen das mein kopieren von linux -> windows auch total lahm ist aber jetzt mal zum test in die andere richtung.
Geht ab mit 20MB/s

Also hier mein System:
Suse 10
Samba 3.0.21c
3com 3c2000 NIC (3c941 chip)
reiserfs fs
Asus A7n8x-x Mainboard

Yehudi
Guru
Guru
Beiträge: 2152
Registriert: 21. Jan 2004, 13:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Yehudi » 16. Mär 2006, 16:36

Ich gebe noch mal den Link von strikegun hinzu:
http://www.linux-club.de/viewtopic.php?t=56142
in dem er sein Problem beschreibt. Bitte hier dann weiterposten, den anderen Thread schließe ich.

Mir fällt gerade mal so in den Anfragen Samba zu langsam auf, dass es sich meistens um Gigabyte-Netzwerkkarten handelt.

Edit:

Das Problem scheint wohl wirklich öffters aufzutreten:
http://lists.suse.com/archive/suse-linu ... /2218.html

Benutzeravatar
Frankie777
Advanced Hacker
Advanced Hacker
Beiträge: 916
Registriert: 30. Apr 2005, 23:22

Beitrag von Frankie777 » 17. Mär 2006, 16:41

Es scheint insbesondere ein Problem bei Suse 10 und GBit Netzwerkkarten/Treiber (bestimmter Type?) zu sein.

Man wird hier nur weiterkommen wenn einer der Betroffenen sich mal mit Ethereal anschaut was da so passiert.
Oder eine Netzwerkkarte eines anderen Herstellers probiert.

Yehudi
Guru
Guru
Beiträge: 2152
Registriert: 21. Jan 2004, 13:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Yehudi » 17. Mär 2006, 18:54

@Frankie: Ja, klar das mit SuSE 10.0 ist mir zwar auch aufgefallen, hatte ich aber nicht weiter erwähnt, weil sich die Netzwerkkarte geradezu ins Auge stach.

Es gibt wohl aktive und passive, aber hier wäre es sehr gut, wenn alle Beteiligten mal ihre Netzwerkkarte posten.

strikegun
Newbie
Newbie
Beiträge: 34
Registriert: 16. Apr 2005, 17:29
Wohnort: Göttingen
Kontaktdaten:

Beitrag von strikegun » 17. Mär 2006, 22:39

Meine Karten waren:
3com 3C2000T
Dlink DGE-530T
(Beide nutzen die Treiber "sk98lin")

Morgen teste ich eine NIC mit dem rtl8169s Chip.

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast