Linux im Netzwerk viel langsamer als Windows
Linux im Netzwerk viel langsamer als Windows
Hallo,
Ich bin jetzt schon bestimmt zwei Wochen am testen, woran es liegt, dass mein Lenny-Server im Netzwerk langsamer ist als ein vergleichbarer Server mit identischer Hardware unter Windows VISTA home. Das witzige ist, dass ich unter Samba (wird von mir bevorzugt) eine große Datei (1,1GB) im Netzwerk (1Gbit, vom lenny-Server zum Vista 64bit Client) eine Übertragunsgeschwindigkeit von bis zu 100MB!!! pro Sekunde erreicht.
Der Unterschied zwischen Windows und Debian Server wird aber erst deutlich, wenn es um viele kleine, sehr viele Dateien geht. Hier bricht die Netzwerkgeschwindigkeit dramatisch ein. Mir würde hier fast ein 10mbit Netz reichen, ohne es vollkommen auszulasten.
Das wäre mir im Notfall auch noch egal, aber jetzt habe ich eine etwas ältere Anwendung, die auf dem Server liegt und unter Vista über Netzwerklaufwerk eingebunden wird. Es ist ein Betriebswirtschaftsprogramm, dass eine textdatei-gebunde Datenbank besitzt, welche über 12 Jahre einiges an Daten beinhaltet. Lese ich nun eine Tabelle (10.000) Datensätze aus, welche aber in einer nur 12MB! großen Textdatei liegen, dauert das ewig. Im Vergleich dazu, wenn das Programm lokal auf dem Vista Client liegt dauert es fast 8x so lange.
OK: Aber richte ich auf nem Windowsserver eine Freigabe ein und lese die Datensätze aus ist dies annähernd genau so schnell, wie lokal!!!
Ich habe den Samba-Server nun umfangreich getestet und komme eigtl. zum Ergebnis, dass hier nicht das Problem liegt (Kein Overload, gute Config), denn mit NFS erziele ich genau das gleiche Ergebnis.
Also muss mein Problem auf einer anderen Ebene liegen, denn ein anderes Lenny System, dass von der Hardware nun fast schon 10 Jahre alt ist bei der Sambafreigabe von genau dem selben Betriebswirtschaftsprogramm genau so schnell (vl. sogar minimal schneller).
=> Hardware kann auch ausgeschlossen werden.
Daher bin ich nun mit meinem Latein wirklich am Ende und hoffe, dass ihr mir weiterhelfen könnt.
MfG BenArt
PS.: Wünsche euch natürlich nen guten Rutsch
Ich bin jetzt schon bestimmt zwei Wochen am testen, woran es liegt, dass mein Lenny-Server im Netzwerk langsamer ist als ein vergleichbarer Server mit identischer Hardware unter Windows VISTA home. Das witzige ist, dass ich unter Samba (wird von mir bevorzugt) eine große Datei (1,1GB) im Netzwerk (1Gbit, vom lenny-Server zum Vista 64bit Client) eine Übertragunsgeschwindigkeit von bis zu 100MB!!! pro Sekunde erreicht.
Der Unterschied zwischen Windows und Debian Server wird aber erst deutlich, wenn es um viele kleine, sehr viele Dateien geht. Hier bricht die Netzwerkgeschwindigkeit dramatisch ein. Mir würde hier fast ein 10mbit Netz reichen, ohne es vollkommen auszulasten.
Das wäre mir im Notfall auch noch egal, aber jetzt habe ich eine etwas ältere Anwendung, die auf dem Server liegt und unter Vista über Netzwerklaufwerk eingebunden wird. Es ist ein Betriebswirtschaftsprogramm, dass eine textdatei-gebunde Datenbank besitzt, welche über 12 Jahre einiges an Daten beinhaltet. Lese ich nun eine Tabelle (10.000) Datensätze aus, welche aber in einer nur 12MB! großen Textdatei liegen, dauert das ewig. Im Vergleich dazu, wenn das Programm lokal auf dem Vista Client liegt dauert es fast 8x so lange.
OK: Aber richte ich auf nem Windowsserver eine Freigabe ein und lese die Datensätze aus ist dies annähernd genau so schnell, wie lokal!!!
Ich habe den Samba-Server nun umfangreich getestet und komme eigtl. zum Ergebnis, dass hier nicht das Problem liegt (Kein Overload, gute Config), denn mit NFS erziele ich genau das gleiche Ergebnis.
Also muss mein Problem auf einer anderen Ebene liegen, denn ein anderes Lenny System, dass von der Hardware nun fast schon 10 Jahre alt ist bei der Sambafreigabe von genau dem selben Betriebswirtschaftsprogramm genau so schnell (vl. sogar minimal schneller).
=> Hardware kann auch ausgeschlossen werden.
Daher bin ich nun mit meinem Latein wirklich am Ende und hoffe, dass ihr mir weiterhelfen könnt.
MfG BenArt
PS.: Wünsche euch natürlich nen guten Rutsch
- schorsch_76
- Beiträge: 2630
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Linux im Netzwerk viel langsamer als Windows
Hi BenArt,
ich vermute mal das die Bremse bei den kleinen Dateien das Filesystem ist. Welches setzt du denn ein? XFS? Ext3/4? Siehe hierzu auch folgenden Thread [1]
Gib uns doch bitte mal die folgenden Infos:
auf dem Lenny System. und Bitte auch ein
Zur Performance von verschiedenen Dateisystemen lies mal [2] durch. Du wirst überrascht sein was es da für Unterschiede gibt.
Gruß und guten Rutsch
schorsch
[1] http://debianforum.de/forum/viewtopic.php?f=13&t=116500
[2] http://www.pro-linux.de/berichte/ext4/ext4.html
ich vermute mal das die Bremse bei den kleinen Dateien das Filesystem ist. Welches setzt du denn ein? XFS? Ext3/4? Siehe hierzu auch folgenden Thread [1]
Gib uns doch bitte mal die folgenden Infos:
Code: Alles auswählen
hdparm -tT /dev/sdx
Code: Alles auswählen
fdisk -l /dev/sdx
Gruß und guten Rutsch
schorsch
[1] http://debianforum.de/forum/viewtopic.php?f=13&t=116500
[2] http://www.pro-linux.de/berichte/ext4/ext4.html
Re: Linux im Netzwerk viel langsamer als Windows
XFS hab ich temporär versucht auf ner vergleichbaren Testplatte => Kein Performance Zuwachs
Momentan liegt das Programm auf nem Software-RAID (mdadm) mit 3 Platten formatiert mit EXT3, welches folgende Werte liefert:
Dazu muss ich sagen, dass lokales kopieren von kleinen Files viel schneller ist (so wie bei Windows auch).
Also ich würd sagen, dass es daran auch nich liegt.
Gruß BenArt
Momentan liegt das Programm auf nem Software-RAID (mdadm) mit 3 Platten formatiert mit EXT3, welches folgende Werte liefert:
Code: Alles auswählen
hdparm -tT /dev/md1
/dev/md1:
Timing cached reads: 4944 MB in 2.00 seconds = 2472.79 MB/sec
Timing buffered disk reads: 458 MB in 3.01 seconds = 152.41 MB/sec
Code: Alles auswählen
fdisk -l /dev/md1
Disk /dev/md1: 639.9 GB, 639992332288 bytes
2 heads, 4 sectors/track, 156248128 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x00000000
Disk /dev/md1 doesn't contain a valid partition table
Gruß BenArt
- schorsch_76
- Beiträge: 2630
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Linux im Netzwerk viel langsamer als Windows
Hi BenArt,
das PRoblem bei vielen kleinen Dateien über Netzwerk ist der Overhead. Es muss für jede kleine Datei eine eigene TCP Verbindung aufgebaut werden. Bei einer grossen Datei baue ich die Verbindung einmal auf und der Server schiebt alles am Stück in den Socket. Bei kleinen Files ist viel mehr "Aufbau->File Öffnen->Verschieben->File schliessen->Abbau" als bei nur einem grossen File. Das selbe Thema hab ich auch in der Arbeit wenn ich von einem Windows Rechner über das Netz nen Ordner mit knapp 1000 Files via Netzwerk von einem Windows Rechner zum nächsten Windows Rechner schiebe. Ein Archiv davon ist in minimaler Zeit übertragen. Direkte Kopie dauert gefühlt "ewig". Anderst lässt sich das für mich nicht erklären.
Eventuell kannst du bei ext3 noch was tunen mit "noatime, nodiratime". XFS würde ich persönlich nicht einsetzten, eher ext4 Hier auf dem Laptop bin ich sehr zufrieden damit. Extrem gute Performance. Unter Umständen kann man auch noch was an der Samba Config optimieren für viele kleine Dateien. Eventuell was am Caching oder dem Verbindungsmanagement drehen.
Gruß
schorsch
EDIT: Vielleicht kann dir dies hier helfen: http://www.linux-schulserver.de/Section ... 4-p2.phtml
das PRoblem bei vielen kleinen Dateien über Netzwerk ist der Overhead. Es muss für jede kleine Datei eine eigene TCP Verbindung aufgebaut werden. Bei einer grossen Datei baue ich die Verbindung einmal auf und der Server schiebt alles am Stück in den Socket. Bei kleinen Files ist viel mehr "Aufbau->File Öffnen->Verschieben->File schliessen->Abbau" als bei nur einem grossen File. Das selbe Thema hab ich auch in der Arbeit wenn ich von einem Windows Rechner über das Netz nen Ordner mit knapp 1000 Files via Netzwerk von einem Windows Rechner zum nächsten Windows Rechner schiebe. Ein Archiv davon ist in minimaler Zeit übertragen. Direkte Kopie dauert gefühlt "ewig". Anderst lässt sich das für mich nicht erklären.
Eventuell kannst du bei ext3 noch was tunen mit "noatime, nodiratime". XFS würde ich persönlich nicht einsetzten, eher ext4 Hier auf dem Laptop bin ich sehr zufrieden damit. Extrem gute Performance. Unter Umständen kann man auch noch was an der Samba Config optimieren für viele kleine Dateien. Eventuell was am Caching oder dem Verbindungsmanagement drehen.
Gruß
schorsch
EDIT: Vielleicht kann dir dies hier helfen: http://www.linux-schulserver.de/Section ... 4-p2.phtml
Die "socket options"
Mit diesem Parameter in der [global]-Sektion beeinflussen Sie die Performance von Samba im Netzwerk. Sie können Samba damit unheimlich schnell - aber leider auch unheimlich langsam machen. Ausprobieren ist hier meist der einzige Weg zur richtigen Einstellung für das eigene Netzwerk.
Re: Linux im Netzwerk viel langsamer als Windows
Hi,
Mit socket options hab ich schon rumprobiert und für eine einzige Datei damit auch merkbare erfolge erzielt, aber für die kleinen Zuriffe kaum merkbar
Kann ich TCP tunen? Mehr gleichzeitige Verbindungen zulassen?
Ich finds halt merkwürdig, da es unter Windows ja fast 8x schneller ist Es geht ja scheinbar.
Gruß BenArt
Mit socket options hab ich schon rumprobiert und für eine einzige Datei damit auch merkbare erfolge erzielt, aber für die kleinen Zuriffe kaum merkbar
Kann ich TCP tunen? Mehr gleichzeitige Verbindungen zulassen?
Ich finds halt merkwürdig, da es unter Windows ja fast 8x schneller ist Es geht ja scheinbar.
Gruß BenArt
- whisper
- Beiträge: 3392
- Registriert: 23.09.2002 14:32:21
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Re: Linux im Netzwerk viel langsamer als Windows
Ohne jetzt SMB Experte zu sein, würde ich mir intensiv die smb.conf man page ansehen.
Könnte mir denken, ds da was zu holen ist
Könnte mir denken, ds da was zu holen ist
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt.
Re: Linux im Netzwerk viel langsamer als Windows
hallo ich hab eine idee.. hehe..
gib unter windows was frei, mounte dies unter Linux.. erstelle 1-2 dateien die ein paar hunder MB gross sind und ein paar dateien dir nur ein paar MB gross sind, dann verschiebe diese daten auf das gemountete netzlaufwerk..
dann kannst du die geschwindigkeit messen..
ich glaube am besten würde es mit einem skript gehen das dd benutzt..
also irgendwie sowas wie
dd if=/dev/null of=/das/netzlaufwerk bs=1M count=10
das in einer while schleife ein paar mal durchlaufen lassen und das ergebnis in eine textdatei schreiben lassen, dann hast du die genaue performance
gib unter windows was frei, mounte dies unter Linux.. erstelle 1-2 dateien die ein paar hunder MB gross sind und ein paar dateien dir nur ein paar MB gross sind, dann verschiebe diese daten auf das gemountete netzlaufwerk..
dann kannst du die geschwindigkeit messen..
ich glaube am besten würde es mit einem skript gehen das dd benutzt..
also irgendwie sowas wie
dd if=/dev/null of=/das/netzlaufwerk bs=1M count=10
das in einer while schleife ein paar mal durchlaufen lassen und das ergebnis in eine textdatei schreiben lassen, dann hast du die genaue performance
Debian-Nutzer
ZABBIX Certified Specialist
ZABBIX Certified Specialist
Re: Linux im Netzwerk viel langsamer als Windows
Also ich wünsch euch allen erstmal ein gutes neues Jahr
Also Performance will ich nicht unbedingt messen, ich seh ja das es in etwa 8 mal solangsam ist, wie wenn der Server unter Windows laufen würde anhand wie schnell die Datensätze ausgelesen werden
Außerdem kann ich nahezu ausschließen, dass es an der Samba config liegt, da ich zum Einen schon nahezu alle Einstellungen durchprobiert habe und zum Anderen NFS genau so langsam ist.
Ich vermute es hat mit TCP zu tun. Vielleicht muss ich irgendwo einstellen, dass er gleichzeitig mehrere öffnen kann zum Client. Was vl. auch sein kann ist, dass er zum Beenden zu lange braucht.
Ich bin echt total verwundert, denn normal ist mein Debian noch nie langsamer gewesen als Windows. Wieso ist der Win-Server sooo viel schneller
Gruß BenArt
Also Performance will ich nicht unbedingt messen, ich seh ja das es in etwa 8 mal solangsam ist, wie wenn der Server unter Windows laufen würde anhand wie schnell die Datensätze ausgelesen werden
Außerdem kann ich nahezu ausschließen, dass es an der Samba config liegt, da ich zum Einen schon nahezu alle Einstellungen durchprobiert habe und zum Anderen NFS genau so langsam ist.
Ich vermute es hat mit TCP zu tun. Vielleicht muss ich irgendwo einstellen, dass er gleichzeitig mehrere öffnen kann zum Client. Was vl. auch sein kann ist, dass er zum Beenden zu lange braucht.
Ich bin echt total verwundert, denn normal ist mein Debian noch nie langsamer gewesen als Windows. Wieso ist der Win-Server sooo viel schneller
Gruß BenArt
- whisper
- Beiträge: 3392
- Registriert: 23.09.2002 14:32:21
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Re: Linux im Netzwerk viel langsamer als Windows
Deinen Hinweis auf NFS habe ich überlesen, Tschuldigung.
Die Ausgabe von ifconfig zeigt auch nichts ungewöhnliches?
Wegen dem vermuteten Overhead, könntest du ein Problem mit IPV4 /V6 haben?
Die Ausgabe von ifconfig zeigt auch nichts ungewöhnliches?
Wegen dem vermuteten Overhead, könntest du ein Problem mit IPV4 /V6 haben?
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt.
Re: Linux im Netzwerk viel langsamer als Windows
Aufn zweiten Blick sieht die ifconfig merkwürdig aus
Nach 4 Tagen uptime macht mir diese Zeile unter eth0 Angst:
Und es werden ständig mehr dropped packets
Gruß BenArt
Nach 4 Tagen uptime macht mir diese Zeile unter eth0 Angst:
Code: Alles auswählen
RX packets:28419023 errors:0 dropped:15800039584746 overruns:0 frame:0
Gruß BenArt
Re: Linux im Netzwerk viel langsamer als Windows
da hilft nur tcpdump gucken... kann es sein das ein gerät an deine kiste pakete sendet die die netzwerkkarte net annehmen will? (falsche mac etc?) oder dropped deine firewall einfach viel müll?