Und wieso hältst du uns solche relevanten Informationen vor? Was hätte es dir gebracht wenn ich gesagt hätte: 20.000 Dateien, 15 GB waren auf unserem Test-Server übers Netz in 10 Sekunden gelöscht. Dieser hat aber Win 2008 drauf und nur AFAIK nur ein RAID1.
Ich habe nicht gewusst, dass das von Bedeutung ist. Sorry, dass ich das vorenthalten habe, war keine Absicht.
Kannst du denn den Gegentest machen indem du die Dateien auf ein Nicht-RAID-Serverlaufwerk kopierst und dann dort löscht? Dann würde man schon mal sehen ob evtl. das RAID-5 bei den entsprechenden
API-Aufrufen der Flaschenhals ist.
Siehe unten bei dem Ergebnis meines Tests.
Auch ja: Für ein vollständiges Testszenario wäre auch noch die Linux und Samba-Version relevant und das eingesetzte Dateisystem. Wenn man "RemoveDirectory Samba" googled findet man viele Eintrag, aber primär von 2006. Es könnte also man was gegeben haben was hier problematisch ist.
Der Linux-Server ist eine Ubuntu 10.04.3 LTS mit Samba 3.4.7.
Ich habe ein paar Tests durchgeführt und folgendes ist dabei rausgekommen :
- Bernhard hat Recht, der MSDN-Befehl RemoveDirectory löscht nur Verzeichnisse, die auch leer sind.
- Ich hatte bei dem Vorgang letzte Nacht doch noch eine ältere Version von meinem Programm laufen, die mit DelDir gelöscht hat.
- Als zweiten Test habe ich jetzt ein Verzeichnis in einer Größe von 722MB genommen und habe es auf den Linux-Server mit Samba-Share gespielt. Das Samba-Share liegt nicht auf dem Raid5. Das gleiche Verzeichnis auch noch auf einem Windows-Server 2008 ohne Raid5. Das Löschen auf beiden Server mit der Funktion DelDir von den Schweizern war gleich schnell.
Fazit:
Da der Windows-Server und der Linux-Server gleich schnell sind, liegt es aus meiner Sicht nicht an der Konfiguration des Samba-Shares. Um jetzt schneller die Backupverzeichnisse löschen zu können, habe ich im Moment nur eine Alternative, da ich nicht weiß ob es noch Optimierungsmöglichkeiten für die Funktion DelDir von den Schweizern gibt. Ich muss ein Bash-Skript von dem Programm erstellen lassen, welches die 7 Verzeichnisse löscht. Dieses Bash-Skript wird dann per Cron-Job aufgerufen.
Sorry, für die etwas chaotische Beschreibung.
Edit: Vom Mausklick zum Starten des Löschvorgangs bis zur Meldung hat der Linux- und Windows-Server 1 Minute und 6 Sekunden benötigt.