Datenübertragungsrate Server --> Client

tremolo2k

Well-Known Member
Hallo Forum,

Ich habe hier ein kleines 1000MBit LAN, Server steht in der Sig., 3Com 996 gbit NIC (bge0) mit SCSI U320 Platten, ein D-Link-Switch, im PC ist eine Realtek 1gbit onboard NIC drinn, und im PowerMac G5 halt die von Apple :D - beide Rechner mit S-ATA Platten

Das Problem: Die übertragungsrate. Auf dem Server ist FreeBSD 6.2 mit Samba, auf dem PC ist WinXP SP2, und auf dem PowerMac ist Mac OS X drauf.

Server --> PC - ca. 20MB/s
Server --> Mac - ca. 15MB/s

Dabei habe ich festgestellt, dass sich beim Kopieren einer grossen Datei sich die Festplatten im Server sowohl auch im PC/Mac langweilen, also weit von vollast aus entfernt sind. Hab ich was vergessen einzustellen, oder habt ihr eine Idee warum ich so miese leistung hab? also 40 - 50 MB/s sollten schon drinnliegen
 
Zum Mac kann ich nichts sagen, aber die Reaktek-Karten sind Schrott und in der Gigabit-Version meilenweit vom theoretischen Maximum entfernt.

Desweiteren könnte auch Samba als Flaschenhals in Frage kommen. Messe die Performance Deines Netzwerk mal mit entsprechenden Tools (netio etc.). Tante Google wird da einiges ausspucken können. So kannst Du die Ursache gezielt ermitteln.
 
Das die Realtek dinger schrott sind, ist nichts neues -aber ich glaube kaum dass in meinem PowerMac einen Realtek chip werkelt - da ist aber der Speed noch grausiger
 
Das alte Problem mit Freebsd und Samba.
Samba läuft einfach nicht vernünftig unter Freebsd.
Is immer mehr oder weniger Glücksssache wie hoch der Transfer ist.

Vielleicht kannst Du mal das Linux-Samba mit Emulation probiern und schaun obs damit besser läuft.
 
Original post gelöscht --> Fehler lokalisiert

ich habe mittels NetIO die fehlerursache gefunden. es muss die NIC im server sein, weil zwischen XP und Mac habe ich sensationelle werte (70 - 90 MB/s), nur zwischen dem server und den anderen habe ich so miese performance - aber wenn ich NetIO -s UND netio -t <server> auf dem server laufen lasse, habe ich auch sehr gute werte. daher habe ich mal das kabel getauscht --> gleiches ergebnis

ich denke ich werde mir eine neue NIC zulegen müssen
 
Zuletzt bearbeitet:
Na, dann hat der Tipp ja doch was genützt. :-)
Ich habs bei mir noch nie ausprobiert. Samba läuft hier auch unter FBSD, über die Performance hab ich mir noch nicht den Kopf zerbrochen (kommt später, wenn ich mal Zeit habe...)
 
naja.. jetzt habe ich mal versuchsweise so eine VIA gbit adapter eingebaut (vge0) nur damit ist es noch schlimmer ...

kann es wirklich sein, dass meine 3com 996b-T eine macke hat?
 
"Das alte Problem mit Freebsd und Samba.
Samba läuft einfach nicht vernünftig unter Freebsd."

Das ist einfach Unsinn. FreeBSD gibt einen prima Fileserver ab. Ich habe schon etliche Server aufgesetzt, die 100MBit bis an die Grenze ausgereizt haben. Das sind dann knapp 10MB/s netto; was will man mehr?

@nismo2000: Was sagt das System denn bei Belastung? Gibts offensichtliche Engpaesse zu beobachten?
 
Engpässe konnte ich keine feststellen.

das einzige was ich herausgefunden habe ist, dass die NIC (3com 996b-T, bge0) nach aussen "keine" leistung hat. Auf konsole 1 "$ netio -s" und auf konsole 2 "$netio -t 192.168.1.10". dann zeigt mir netio traumhafte werte jenseits von 60 MB/s, das höchste war so 95MB/s. Wenn ich aber netio -t ...... auf dem WinXP SP2 eingebe, bin so zwischen 12 und 20 MB/s, RX wie TX, daselbe auch vom Mac. Aber zwischen dem Mac und WinXP habe ich mehr als 50MB/s RX wie TX.

Mit der VIA Karte (vge0) habe ich auf dem Server eingehend weniger als 1MB/s (lol?!) und ausgehend ca. 40MB/s

Ist da wirklich die NIC faul? an FreeBSD liegt es nicht - Win2003 war auch so lahm
 
@ j_t:

da bist Du aber so ziemlich der einzige.
Brauchst nur mal die mailinglisten oder auch die Foren zu durchsuchen.
Bei den meisten läufts einfach gar nicht.
 
"Ist da wirklich die NIC faul? an FreeBSD liegt es nicht - Win2003 war auch so lahm"

Setz doch bitte mal bge0 per ifconfig auf 1000baseTX und verbinde den Server direkt ohne Switch mit einem Client (ebenfalls fest auf GBit gekorkt).
 
"Ist da wirklich die NIC faul? an FreeBSD liegt es nicht - Win2003 war auch so lahm"

Setz doch bitte mal bge0 per ifconfig auf 1000baseTX und verbinde den Server direkt ohne Switch mit einem Client (ebenfalls fest auf GBit gekorkt).

und hier die resultate:

ifconig auf BSD
Code:
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=1b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING>
	inet 192.168.1.10 netmask 0xffffff00 broadcast 255.255.255.0
	ether 00:04:76:ee:ec:fe
	media: Ethernet autoselect (1000baseTX <full-duplex>)
	status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 
	inet6 ::1 prefixlen 128 
	inet 127.0.0.1 netmask 0xff000000
bsd zu bsd intern
Code:
NETIO - Network Throughput Benchmark, Version 1.26
(C) 1997-2005 Kai Uwe Rommel

TCP connection established.
Packet size  1k bytes:  45659 KByte/s Tx,  42976 KByte/s Rx.
Packet size  2k bytes:  59481 KByte/s Tx,  40576 KByte/s Rx.
Packet size  4k bytes:  68806 KByte/s Tx,  50821 KByte/s Rx.
Packet size  8k bytes:  81032 KByte/s Tx,  51751 KByte/s Rx.
Packet size 16k bytes:  86850 KByte/s Tx,  52105 KByte/s Rx.
Packet size 32k bytes:  87511 KByte/s Tx,  52562 KByte/s Rx.
Done.
bsd zu winxp
Code:
NETIO - Network Throughput Benchmark, Version 1.26
(C) 1997-2005 Kai Uwe Rommel

TCP connection established.
Packet size  1k bytes:  19117 KByte/s Tx,  15651 KByte/s Rx.
Packet size  2k bytes:  24682 KByte/s Tx,  18725 KByte/s Rx.
Packet size  4k bytes:  26237 KByte/s Tx,  20735 KByte/s Rx.
Packet size  8k bytes:  26933 KByte/s Tx,  28382 KByte/s Rx.
Packet size 16k bytes:  27566 KByte/s Tx,  34857 KByte/s Rx.
Packet size 32k bytes:  27791 KByte/s Tx,  37354 KByte/s Rx.
Done.
Windows zu bsd
Code:
NETIO - Network Throughput Benchmark, Version 1.23
(C) 1997-2003 Kai Uwe Rommel

TCP connection established.
Packet size  1k bytes:  14338 KByte/s Tx,  20277 KByte/s Rx.
Packet size  2k bytes:  17244 KByte/s Tx,  23756 KByte/s Rx.
Packet size  4k bytes:  22473 KByte/s Tx,  25135 KByte/s Rx.
Packet size  8k bytes:  28077 KByte/s Tx,  26723 KByte/s Rx.
Packet size 16k bytes:  34138 KByte/s Tx,  27314 KByte/s Rx.
Packet size 32k bytes:  37364 KByte/s Tx,  27011 KByte/s Rx.
Done.
windows zu windows intern
Code:
NETIO - Network Throughput Benchmark, Version 1.23
(C) 1997-2003 Kai Uwe Rommel

TCP connection established.
Packet size  1k bytes:  48313 KByte/s Tx,  50407 KByte/s Rx.
Packet size  2k bytes:  50505 KByte/s Tx,  58527 KByte/s Rx.
Packet size  4k bytes:  73683 KByte/s Tx,  74735 KByte/s Rx.
Packet size  8k bytes:  127006 KByte/s Tx,  126044 KByte/s Rx.
Packet size 16k bytes:  158601 KByte/s Tx,  158191 KByte/s Rx.
Packet size 32k bytes:  129121 KByte/s Tx,  128822 KByte/s Rx.
Done.
und weils so schön war: winxp zum powermac g5 (dazwischen hängen 2 switches, und mehr als 20 meter kabel)
Code:
NETIO - Network Throughput Benchmark, Version 1.23
(C) 1997-2003 Kai Uwe Rommel

TCP connection established.
Packet size  1k bytes:  46016 KByte/s Tx,  89615 KByte/s Rx.
Packet size  2k bytes:  54023 KByte/s Tx,  45080 KByte/s Rx.
Packet size  4k bytes:  71240 KByte/s Tx,  97827 KByte/s Rx.
Packet size  8k bytes:  72774 KByte/s Tx,  44651 KByte/s Rx.
Packet size 16k bytes:  68741 KByte/s Tx,  75985 KByte/s Rx.
Packet size 32k bytes:  75252 KByte/s Tx,  37504 KByte/s Rx.
Done.
 
Zuletzt bearbeitet:
Also richtig mies sind die Werte nun ja wirklich nicht. Ein Durchsatz von ca. 30 bis 40MB/s ist je nach NIC durchaus ok. Bei Samba verschlingt das Protokoll natuerlich noch einen Teil der Bandbreite, sodass etwa 25 MB/s erzielt werden sollten.
Du koenntest den Kernel noch tunen indem du einige Buffer vergroesserst.

net.inet.tcp.sendspace
net.inet.tcp.recvspace
(siehe unbedingt manpage tuning)

Samba selbst bietet auch noch Einstellungen:
SO_SNDBUF und SO_RCVBUF

Ich hoffe es hilft!
 
Also richtig mies sind die Werte nun ja wirklich nicht. Ein Durchsatz von ca. 30 bis 40MB/s ist je nach NIC durchaus ok. Bei Samba verschlingt das Protokoll natuerlich noch einen Teil der Bandbreite, sodass etwa 25 MB/s erzielt werden sollten.
Du koenntest den Kernel noch tunen indem du einige Buffer vergroesserst.

net.inet.tcp.sendspace
net.inet.tcp.recvspace
(siehe unbedingt manpage tuning)

Samba selbst bietet auch noch Einstellungen:
SO_SNDBUF und SO_RCVBUF

Ich hoffe es hilft!
Irgendwie bringt das alles nichts. Ich habe mal net.inet.tcp.sendspace auf 64k gestellt - kein Effekt. Auf 128k gestellt - kein Effekt. TCP Window Scaling ist natürlich an. Im Handbuch steht, man soll auch net.inet.tcp.inflight.enable auf 1 setzen, was aber bei 6.2R schon per default angestellt ist.

Dann habe ich in der smb.conf noch den send buffer deutlich aufgedreht
Code:
socket options = SO_RCVBUF=8192 SO_SNDBUF=32768 TCP_NODELAY IPTOS_LOWDELAY
eingestellt und den Samba-Server neu gestartet. Wieder - kein Effekt.

Ich komme mit Samba-Shares irgendwie vom Server lesend nicht über max. ~22 MB/s hinaus. Die Platten (gmirror split) langweilen sich (zu sehen in systat -vmstat und gstat), die CPU langweilt sich auch, die Netzwerkkarten (alles em(4)) und der Gigabit-Switch genau so, auf dem PCI-Bus ist auch nichts los und der Windows-Client gähnt auch nur.

Wo ist denn die Bremse, die man lösen kann? Irgendwo muss doch der Flaschenhals liegen, dass man wenigstens einigermaßen in die Nähe der mit NetIO möglichen >80 MB/s kommt. Es wäre schön, wenn man wenigstens die Festplatten-Performance einigermaßen ausnutzen könnte...

Kann man noch irgendwo etwas rausholen?
 
Zuletzt bearbeitet:
alter thread - neue erkenntnisse / lösung


Ich habe meine Proliant gurke ein wenig aufgemotzt und nun habe ich über 35MB/s über samba

neu sind 3ware Escalade 8006-2LP S-ATA RAID controller, 2x500GB S-ATA Platten
intel PRO/1000 Dual NIC

2x P-III 1.266GHz, 2GB RAM

an was es wirklich lag weiss ich nicht. achja immer noch das selbe system ohne was zu ändern an den config files. ausser fstab, aber die hat ja nichts mit Netzwerk zu tun.
 
Zurück
Oben