kopieren von dateien zu langsam

P

projaket

Grünschnabel
hallo leute,

ich bin schon am verzweifeln. hab mir zuhause ein kleines netzwerk aufgebaut. samba läuft bei mir als pdc. das einrichten hat soweit geklappt. anmelden geht auch. wenn ich jedoch eine datei von einem share kopieren möchte, dauert das ziemlich lange (für 50 mb braucht er über 10 min). auf den clients läuft winxp, auf dem server ein debian sarge mit samba 3. ich hab eine 6Gb festplatte drin, auf der das system läuft, und eine 300Gb usb festplatte angeschlossen, auf der die homes liegen. ein hdparm -tT /dev/sda1 hat gezeigt, dass 20 mb von der usb platte gelesen werden können(damit schließe ich mal aus dass es an der festplatte liegt). alle haben eine 100 Mbit karte drin. wenn ich top ausführe, zeigt er mir dass der smbd den prozessor zu 97 prozent auslastet(hier scheint wohl das problem zu sein). der server hat einen 350MHz PII mit 192Mb ram.(liegt hier vieleicht das problem?). beim googeln hab ich zwar öfter das problem mit dem langsamen kopieren gefunden, aber die lösungen scheinen nicht auf mein problem zuzutreffen. vieleicht ist ja auch in meiner smb.conf was falsch.

hier ein teil meiner smb.conf:

[global]
workgroup = SAMBADOMAIN
server string = DEBIAN SAMBA SERVER
passdb backend = tdbsam
security = user

encrypt passwords = yes
unix password sync = true
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n
# password level = 8
pam password change = yes

domain master = yes
local master = yes
preferred master = yes
dns proxy = no
wins support = no
domain logons = yes
logon script = default.bat
add user script = /usr/sbin/useradd -d /dev/null -s /bin/false -M %u
logon path = \\%L\profiles
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
passwd chat debug = yes
debug level = 101
preserve case = yes
short preserve case = yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
protocol = NT1

[myhome]
...
[profiles]
...

ich hab leider kaum ahnung von linux, ist mein erstes projekt

wenn ihr noch was braucht, dann poste ich es noch.
 
Gibt Samba irgendwelche Fehler im Log aus, wenn du Dateien kopierst? Und ist das Kopieren z.B. ueber SFTP oder FTP genauso langsam?
 
in welcher logfile soll ich da nachschauen (log.smbd, log.nmbd ...)?

meinst du mit sftp zufällig scp? (sorry kenn mich leider nicht so aus)
hab grad mittels scp unter cygwin die datei vom server gezogen. hatte immerhin 1,1 MB/s also hat es ungefähr 50 sekunden gedauert (im vergleich zum kopieren unter windows mit ca. 14 min schon besser aber nicht genug).

Edit: Hab mich mit sftp eingeloggt.(hat genau wie bei scp 1,1 Mb/s geschaft)
 
Zuletzt bearbeitet:
Ja, scp nutzt SFTP. Da auch scp bei dir nicht schneller ist, tippe ich mal auf eine schlecht eingestellt MTU oder einen Defekt in der Netzwerkkarte (oder im Switch, falls genutzt).
 
also mit scp bzw. sftp waren es 1,1 MB/s, statt vorher ca 100 KB/s, also ca 10 mal so schnell.

alle rechner hängen bei mir an einem router mit integriertem switch. alle rechner waren auch vorher schon in einem schlechtorganisierten heimnetz (deshalb jetzt auf samba umgestiegen) angeschlossen. hatte da nie probleme, obwohl ich viel zwichen den einzelnen rechnern hin und her geschoben habe.

werde mal schauen was es mit dem MTU auf sich hat
 
hab jetzt einen anderen router eingesetzt, aber hat sich nichts geändert.

ich weiß nicht ob ich das mit der MTU verstanden hab. im moment ist auf dem server eine MTU von 1500, im router eine MTU von 1492 eingestellt(ist beim router wohl wegen den 8 byte PPPoE). beim googeln fand ich folgendes:
ping -s MTU -c 4 -M do RECHNER
-M do soll ja bedeuten, dass das paket nicht fragmentiert wird. wenn ich werte bis 1464 eingebe werden alle pakete korrekt übertragen. von 1465-1472 hab ich 100% verlust, mehr zeigt er nicht an. ab 1473 gibt es 4 fehler, und die ausgabe sieht etwa so aus:

PING 192.168.1.100 (192.168.1.100) 1473 (1501) bytes of data
from 192.168.1.102 icmp_seq=1 Frag needed and DF set (mtu = 1500)

er wirft immer noch 28 byte drauf (Header?). wenn ich dies auf meine oben genannte werte aufaddiere dann sind dies:
bis 1492: OK (hat das vieleicht etwas mit den 1492 im router zu tun?)
1493 bis 1500: alles verloren
ab 1501: alles verloren, aber ausgabe von "Frag needed".

vieleicht weis jemand was das bedeutet.
 
Wenn ich Win->BSD || BSD->Win, nehme ich unter Win den psftp.exe.
Funktioniert gut.
Welche Netzwerkkarte hast du???
Ich hatte ein ähnliches Problem, hab meine Marvell-Netzwerkkarte ausgewechselt und es ging dann.

Ich habe bloß nicht mehr alle Beiträge durchlesen können, da ein Gewitter in meinem Dorf ist, muss schnell die Tür zumachen, sonst kommt es noch rein:)
 
hab sie schon ein paar jahre, ist so viel ich weiß eine mit realtek rtl 8139. die lief unter xp aber ziemlich gut (wie vorher schon gesagt, hab ich sie ganz normal auf einem winxp client benutzt und hin und wieder ein paar GB von einem rechner auf den anderen geschoben und da volle bandbreite genutzt). kann es dann sein dass sie einfach nicht gut von linux genutzt wird?
mir scheint es jedoch eher an samba zu liegen, da der smbd den prozessor beim kopieren voll auslastet. wenn die karte schlecht läuft, hat dies dann auch auswirkungen auf den smbd?
 
kann es dann sein dass sie einfach nicht gut von linux genutzt wird?

Nunja, diese NIC belastet auch die CPU,da sie keine eigene besitzt, deswegen kann es schon sein, dass das Kopieren so langsam ist.

350 MHz sind nicht viel.

MFG

Dennis
 
Wie ist die USB Festplatte angeschlossen, an USB 1.1 oder USB 2.0?
Welche USB Karte ist drin?
Am besten Hersteller + Modell
 
Hallo,

kann es dann sein dass sie einfach nicht gut von linux genutzt wird?

@projaket: nicht wirklich. Ich verwende die Realtek 8139 auf Clients unter Linux lieber als 3Com-Karten. In der Regel funktionieren sie einwandfrei.

@DennisM: Sorry, aber ich habe hier einen Pentium-II 266, der immer noch seine Dienste verrichtet, und er hat eine solche Karte drin:
Ein 17,5 MB-File in ca. 6 Sekunden (etwa 2,8 MB/s) und das per SCP, also mit hoher CPU-Anforderung im Vergleich zu SAMBA.
Wenn das so wäre, dass 350 MHz nicht ausreichen, was denkst Du, was die Leute früher gemacht haben?

Also, ich denke, Du solltest den Flaschenhals ermitteln. Ich hab übrigens schon einen Verdacht. Installier bitte sysstat, falls nicht schon geschehen und führe während einer solchen Übertragung "mpstat 1" aus. Dann siehst Du mal, warum die CPU ausgelastet ist. Über 90% iowait? Das wäre mein Verdacht.

Ansonsten schau Dir mal an was "ethtool eth0" sagt. Ist die Karte auf 100 MBit und full duplex eingestellt?

Viele Grüße..........
 
hallo leute,

erstmal danke für die vielen antworten.

@ Horus: ist an usb 2.0 angeschlossen, hersteller weiß ich leider nicht, hat aber einen via chipsatz (kann ich das unter linux irgendwie auslesen?, auf der karte selbst steht nicht viel). wie vorher schon erwähnt, hab ich mit testparm -tT /dev/sda1 einen lesedurchsatz von 20 Mb/s, also sollte usb 2.0 laufen.

@ phrenicus: werde es gleich mal ausprobieren und melde mich dann wieder.

weiß jemand vieleicht, warum ich beim kopieren unter windows ca 100KB/s und bei scp ca 1 - 1.4 MB/s hab?

[EDIT]
@ phrenicus: ethtool zeigt 100Mbit und full duplex an
mpstat 1 ergab folgendes:
mit windows kopieren: user 70% system 30% iostat 0%
mit scp kopieren: user 20% system 10% iostat 0%

iostat hatte immer 0% (was würde es bedeuten wenn es anders wäre?)

interessant ist der unterschied zwischen windows-kopie und kopieren mittels scp: windows lastet die cpu zu 100% aus, scp nur zu 30%,
wobei mir aber selbst die methode mit scp zu langsam ist.
[/EDIT]
 
Zuletzt bearbeitet:
besteht ein Unterschied (im Datendurchsatz), ob du auf die Interne oder auf die externe Festplatte kopierst?


Mit dem Konsolen Tool testparm kannst du deine SMB.conf auf Fehler testen lassen
 
Zuletzt bearbeitet:
Das ist seltsam.
SAMBA ist in der Regel wesentlich schneller als scp. Für große Datenmengen lohnt es sich sogar manchmal, zwischen zwei Linuxen ein SAMBA aufzusetzen, weil SAMBA auch wesentlich schneller ist als NFS.

Die USB-Daten bekommst Du mit "lsusb" (oder "lsusb -v").

Ich habe hier auf dem Pentium II-266 einen Durchsatz von 5,8 MB/s bei ca. 60% user, 10% system, 0% iowait.

Mein Verdacht vorhin war, dass die CPU ständig darauf wartet, dass I/O nachgeliefert wird (USB-Platte schlecht angebunden). Das hätte einen hohen Wert von iowait zur Folge.

Bei Dir sieht das aber wirklich so aus, dass der smbd die CPU auslastet.
Wenn Dein Windows-Client auch eine Freigabe hat, kannst Du Dich vom Linux-Rechner mal per smbclient dorthin verbinden und was übertragen:

Code:
smbclient //WIN-DOSE/FREIGABE
smb:> lcd /pfad/zu/lokalem/dir
smb:> put irgendeinfile.tar.gz

und mal mpstat 1 nebenher laufen lassen. Ist das dann gleich?


EDIT: Welche SAMBA-Version verwendest Du? (smbd -V)

Gruß........
 
Zuletzt bearbeitet:
testparm sagt dass die smb.conf OK ist.

hab jetzt mal die interne nach /home gemountet. hat bei hdparm sogar nur 10Mb/s datendurchsatz. hat beim kopieren mit windows und scp aber genau die gleichen werte (50Mb-file 10min windows; 1min scp). Damit würde ich wohl die usb-festplatte als fehlerquelle ausschließen.

muss jetzt mal schauen ob ich eventuell eine andere netzwerkkarte ausleihen kann. hab zwar noch zwei andere rechner, aber die haben beide onboard lan.
 
Ich glaub ich habs.

Sorry, dass ich auf mich selbst antworte, aber ich habe mal Deine Config genau angeschaut. Bei einem Loglevel (debug level) von 101 kriege ich noch grade mal 300 kB/s hin.

Setz mal Deinen debug level auf 2 ;-)

und probiers nochmal.

:-))

EDIT: Falls DU Dich fragst, warum: smbd ist bei einem log level von 101 sicher zu 90% mit loggen beschäftigt, zu ca. 10% mit Daten übertragen... Das glaube ich jedenfalls.
 
jaaaaaaaaaaaaa, jaaaaaaaaaaaaaaaaaa, deutschland ist weltmeister

@ phrenicus: du hattest recht. debug level ausgeschaltet und siehe da: ca 5 sek, dann war sie unten. das zeigt auch das samba wirklich schneller ist :)

hab so viele probleme beim einrichten gehabt, dass ich irgendwan wohl zum debugen den level hochgeschraubt hab (anmelden hatte anfangs nicht geklappt). dann wohl vergessen ihn auch wieder auszuschalten *schäm*

vielen dank an phrenicus für die lösung und alle anderen die mir tipps gegeben habe. habe viel dabei gelernt. :)
 
hast du mehrere netzwerkkarten im rechner?
läuft eine FW, sind DNS-Einträge richtig, routingtabelle geprüft.
wenn du per scp einen höheren durschsatz hast als bei samba, schalte mal den debug level hoch und schau dann mal ins logfile.
 
hast du mehrere netzwerkkarten im rechner?
läuft eine FW, sind DNS-Einträge richtig, routingtabelle geprüft.
wenn du per scp einen höheren durschsatz hast als bei samba, schalte mal den debug level hoch und schau dann mal ins logfile.

WTF???

Es bietet sich an den Thread zu lesen bevor man darauf antwortet.

Das Problem ist doch zwei Posts vorher schon gelöst worden!
 

Ähnliche Themen

Samba 4.9.5-Debian - Kennwort von unix übernehmen

Samba-Server mit Univention Corporate Server

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Samba Dateien und Ordner verschieben

Keine Zugriff von Windows 10 auf Sambafreigaben

Zurück
Oben