Spass mit NAS

...oder warum der schnellste Compiler plötzlich still steht.

Prolog

Vorab die Konfiguration : WinXP Professional, Synology DS106j, 100-Mbit Netzwerk, Canon Pixma MP750

Ich hatte mich letzte Woche entschieden, meinem kleinen Netzwerk (2PC) eine kleine NAS zu spendieren - die Synology DS 106j schien mir dafür gut geeignet : Kein Server->keine Wartung und trotzdem die Dateien zentral - so das Motto.

Die Geschichte war schnell eingerichtet und die Daten waren mehr oder minder flugs auf das Gerät kopiert; Dokumente und Medien (sprich Bildchen) liessen sich Oeffnen, betrachten, editieren - alles geshared, gemeinsam und schön ;)

EXE und Batchdateien können nicht vom Netzwerkshare gestartet werden

Dann kam der Moment, wo ich wieder meine eigentliche Tätigkeit als Entwickler aufnehmen wollte. Aber leider liess sich kein Program und kein Batchfile direkt von einem Netzlaufwerk starten - Fehler "Auf das angegebene Gerät, bzw. den Pfad oder die Datei kann nicht zugegriffen werden. Sie verfügen eventuell nicht über ausreichende Berechtigungen, um auf das Element zugreifen zu können.".

Es hatte mich mehrere Stunden gekostet herauszufinden, dass dieser Fehler nur auftrat, weil aus irgendeinem Grund die Synology Diskstation nicht als Mitglied der lokalen Intranetzone erkannt wurde (obwohl sie ganz normaler Bestandteil meiner Workgroup war und der normale Datei-Explorer sie auch so aufführte) und weil mein IE so konfiguriert war, dass in der Internetzone keine Scripte und kein Active-X ausgeführt werden durften. Waren Scripte und dergleichen erlaubt, poppte beim Doppelklick auf eine Executable-Datei eine Sicherheitswarnung auf, die besagte, dass der Herausgeber der Datei unbekannt sei und darum ein Sicherheitsrisiko bestünde. Nachdem ich den Netzwerknamen meiner Synology manuell der lokalen Intranetzone hinzugefügt hatte, war zumindest dieser Spuk vorbei.

Langsame Kompilierung mit dem schnellsten Kompiler

Nun stellte ich aber mit Schrecken fest, dass die Kompilierung eines Delphi-Projektes, die früher binnen einer halben Minute durchgeführt wurde, nun nahezu 10 Minuten in Anspruch nahm. Windows stockte unangenehm. Es klemmte vor allem in Bereichen, wo der Explorer irgendwie drin steckte - also Startmenu, Taskleiste und dergleichen.

Nachdem ich fleissig gegoogelt hatte, beherzigte ich dann den Rat aus dem Netz, wenigstens die Drittherstellerkomponenten und Open-Source Sachen lokal zu halten. Die eigentlichen Sourcen meiner Projekte wollte ich zusammen mit den dazugehörigen Dokumenten und Dateien aber jeden Fall auf dem Netz deponieren.

Dadurch verbesserte sich die Kompilierperformance deutlich und lag nun bei 1-2 Minuten. Es war jedoch immer noch zäh und das Stocken von Windows blieb.

Den Virenscanner hatte ich schon lange im Verdacht und ebenfalls deaktiviert - ohne Verbesserung.

Es drängte sich recht schnell der Gedanke auf, dass es sich um Verzögerungen beim Zugriff auf viele kleine Dateien handeln musste. Denn die Performance bei grösseren Dateien - ohne das nachgemessen zu haben - schien mir für ein 100 MBit-Netzwerk durchaus im grünen Bereich.

Wiederum brachte stundenlanges surfen und verzweifeln folgenden Link zu Tage...

Samba Performance Tuning (siehe Kapitel "Samba Performance is Very Slow"

Also gleich mal die Druckerfreigabe meines Canon entfernt und siehe da - alles flutschte spürbar schneller. Der Explorer listete die Dateien schneller und Delphi produzierte wieder in erträglicher Zeit ein Executable.

Epilog

Das Ganze hat durchaus Nerven und Zeit gekostet und mich dazu bewogen, das hier mal hin zu schreiben. Vielleicht stolpert - den Suchmaschinen sei dank - ja der nächste NAS-Windows-SAMBA-CIFS-SMB-Netzwerk-Delphi-Verzweifelte drüber und es rettet ihn ;)

Vielleicht kommt aber noch jemand mit ein paar guten Erklärungen, warum ein Printer-Share die Windows-Netzwerkperformance derart runterziehen kann. Auch andere Windows-spezifischen SMB-Performance-Tuning-Tipps sind gern willkommen.