hjaeger
Elite Observer

parallele Auftragsaktionen in FS5

Hallo Community.

Im Zuge der Migration auf FS5 kam ein schonmal angedachtes Thema wieder hoch.

Parallele Ausführung mehrerer Generierungen in jeweils einer Sprache bei einem mehrsprachigen Projekt.

Ziel: Performancesteigerung durch stärkere Auslastung des recht potenten Redaktionssystems (32 Cores)

Leider sind wir hier über eine Testphase nicht hinausgekommen, da sich einige Probleme ergaben:

1. gelegentliche Lockups der Generierungsaktionen

2. teilweise längere Ausführungszeiten bei paralleler Generierung als bei linearer Abfolge

Zu Punkt1: Wir konnten hier keinerlei Fehlerquelle in unseren Templates lokalisieren. Das Problem trat sporadisch auf.

Zu Punkt2: Ein Bottleneck im I/O des Servers kann ausgeschlossen werden, es gab keinerlei io-wait.

Neben der Parallelisierung der Sprachen haben wir auch mehrere Teilgenerierungen von Projektsegmenten versucht, mit gleichem Ergebnis.

Wie sind hier die Erfahrungen von anderen großen Projekten? Wurde/Wird das irgendwo praktiziert?

Bin für jeden Tipp dankbar.

MfG

0 Kudos
4 Replies
feddersen
Community Manager

Zu Punkt 1: Die Lockups wären eher ein Thema für den Helpdesk. Am besten Threaddumps erstellen, die lassen vielleicht auf die Ursache schließen.

Zu Punkt 2: Generell hat der Cache des Repositories viel Einfluss auf die Generierungszeit. Führt man zwei gleiche Generierungen hintereinander aus, so ist die zweite meist deutlich schneller als die erste Generierung. Hast du das beim Vergleich berücksichtigt? Zudem ist zu beachten, dass bei mehreren Generierungen auch die Medien mehrfach ins Dateisystem geschrieben werden. Gerade bei vielen bzw. großen Medien ist das oft ein erheblicher Faktor.

0 Kudos

Das Caching innerhalb der Generierung ein Faktor ist, war bekannt. Schliesslich generiert die zweite Sprache bei einer linearen Generierung ja immer wesentlich schneller.

Viel wichtiger ist aber eine Antwort auf die Frage, ob es sich überhaupt lohnt, da Zeit und Arbeit reinzustecken. Wird parallele Generierung irgendwo produktiv eingesetzt? Haben sie das in-house mal getestet?

0 Kudos

Natürlich testen wir das. Der Zeitgewinn hängt stark vom Projekt und der Projektgröße ab, d.h. ob sich ein produktiver Einsatz lohnt, muss man testen. Wenn bei der Generierung die IO der limitierende Faktor ist, lohnt es sich tatsächlich nicht. Eine Pauschal-Aussage ist aber tatsächlich nicht möglich.

Zu dem Punkt:

Zudem ist zu beachten, dass bei mehreren Generierungen auch die Medien mehrfach ins Dateisystem geschrieben werden. Gerade bei vielen bzw. großen Medien ist das oft ein erheblicher Faktor.

Das trifft natürlich zu, wenn einzelne Aufträge parallel laufen. Ich gehe aber davon aus, das Hagen von parallelen Tasks innerhalb eines Auftrags spricht.

Zu den Deadlocks: An den Traces habe ich auch starkes Interesse. "Fehler in Vorlagen" können nicht zu einem Deadlock führen. Eventuell wird irgendwo noch eine falsche Datenstruktur verwendet, entweder im FirstSpirit-Code oder in einer Fremdkomponente.

Peter
0 Kudos

Ich kenne mehrere Projekte die parallel Generierung. Meist entweder nach Sprache oder Ausgabekanal. Ob es schneller ist hängt aber von vielen Faktoren ab, das muss man leider ausprobieren.

Wenn es primär um die Beschleunigung des Prozesses geht, gibt es noch ein paar andere Stellschrauben:

  • Deltagenerierung verwenden
  • Den Haken "Medien im Generierungsverzeichnis erzeugen" deaktivieren und das CRC-Deployment einsetzen
  • Mal die Generierungszeiten für jede Page loggen oder in eine Monitoring-Software laufen lassen. Dann versuchen die Langläufer zu optimieren. Oft hilft das Setzen von Indices in der Datenbank.
0 Kudos