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.