Du bist nicht angemeldet.

#1 15.05.2007 15:29:19

steppe
Gast

smb langsam

Hallo

Bin gerade dabei größere Datein von meinem Arch Notebook auf meine Win Rechner zu kopieren. Dazu habe ich auf dem Win Rechner einen Ordner mit Schreibrechte freigegeben. Kopieren funktioniert auch wunderbar, aber ich habe beim kopieren eine sehr hohe Prozessorauslastung (auf höchster Taktstufe (1,8 GHz) 80 %) und das kopieren ist nicht wircklich schnell.
Bei andren Distirs ist mir das Kopieren wesentlich schneller vorgekommen (ist aber nur gefühlt ich habe keine Zahlenwerte zum vergleichen). Gibt es da ein Problem oder sind die beschriebenen Faktoren normal?

mfg

#2 16.05.2007 12:18:17

GerBra
Mitglied

Re: smb langsam

Ist das Problem noch aktuell oder für dich relevant?

Ohne ein bißchen Testen/Messen wirst du da IMHO nicht zu einer Aussage kommen können. Die Möglichkeiten, wo evtl. "Flaschenhälse" sind, sind einfach zu mannigfaltig.

Das kann (auf beiden Seiten) u.a. sein: Festplatten-IO(kein DMA), ungeeignete Netzkarten/Treiber, Resourcenkonflikte, schlechte Netzfilesystem-Optionen, Windows (außer W2K ist IMHO bei jedem Windows die Netzperformance miserabel).

Erste Tests kannst du recht einfach machen. Du brauchst lediglich für Arch und Windows das Tool netcat:
pacman -S gnu-netcat
Für Win: http://www.vulnwatch.org/netcat/

Mit netcat kannst du einfach quasi einen Tunnel bzw. eine TCP/IP Verbindung zwischen den beiden Rechner herstellen, über den Programme dann Daten austauschen können - hier dann Daten kopieren. Netcat deswegen, um evtl. Overhead durch das SMB/CIFS-Netzprotokoll bei Samba auszuschließen.

Test1: Kopieren von Daten über Samba auf den Win-Rechner
Die Win-Freigabe mounten:

mount -t cifs //WinClient/Sharename /dein_ziel -o user=dein_user

Die Werte für WinClient,Share und user natürlich an deine Gegebenheiten anpassen

Dann kannst du messen (ich zeige dir mal meine Ergebnisse mit):
dd if=/dev/zero bs=1024K count=500 of=/dein_ziel

dd if=/dev/zero bs=1024K count=500 of=/mnt/working/_incoming/nc-in
500+0 Datensätze ein
500+0 Datensätze aus
524288000 Bytes (524 MB) kopiert, 63,055 s, 8,3 MB/s

Als Quelle nehmen wir Nullen aus /dev/zero um einen evtl. Flaschenhals lokale Festplatte zu auszuschließen. Du kannst bei if= auch eine beliebige Datei angeben, dann solltest du aber bs und count weglassen.

Test2: Kopieren von Daten rein über TCP/IP
Netcat auf beiden Rechnern installieren. Dann auf Win-Seite den lauschenden Teil starten:

nc -l -v -p 10008 > c:\nc-in.dat

Von Linux-Seite eine Verbindung aufbauen und über diesen Weg Daten schicken:

dd if=/dev/zero bs=1024K count=500 | nc IP_von_Win 10008
500+0 Datensätze ein
500+0 Datensätze aus
524288000 Bytes (524 MB) kopiert, 69,6986 s, 7,5 MB/s

STRG+C danach zum Trennen der Verbindung.

Bei beiden Tests solltest du in einem Terminal top mitlaufen lassen. Dort solltest du oben in der CPU-Zeile darauf achten welche Werte hoch gehen. Beim Transfer sollte eigentlich der idle-Wert(id) recht hoch sein, d.h. dieser Transfer sollte wenig/kaum die CPU belasten. Ein Auge solltest du auch auf den Wait-Wert(wa) haben: Dieser sollte während des Transfers nicht dauerhaft hoch sein. Wenn doch, würde das heißen daß Festplatte oder Netzkarte "schlecht" arbeiten. Wait heißt hier: Die CPU würde gerne "weiterrechnen", muß aber auf Daten warten.

So, das in aller Kürze wie man sowas testen kann. dd hat halt den Vorteil, daß damit auch gemessen werden kann.
Vielleicht hilft es dir ja ein wenig.

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums