
- Konfigurieren Sie den Workflow Ihres Projekts, wählen Sie die Processing Station, die hinsichtlich der Hardwareparameter dem in der Produktion eingesetzten System am nächsten kommt, und erstellen Sie einen typischen Batch von Bildern.
- Wir messen, wie lange die Verarbeitung eines Batches pro Kern dauert. Es reicht nicht aus, einen Batch nur einmal zu verarbeiten, da FlexiCapture die Verarbeitung auf alle verfügbaren Kerne verteilen kann und die Verarbeitung eines Batches bei Tests dadurch weniger Zeit in Anspruch nimmt, während in der realen Produktion andere Kerne mit der Verarbeitung anderer Batches beschäftigt sind. Für eine zuverlässige Schätzung empfehlen wir, mehrere Kopien Ihres typischen Batches zu erstellen – mindestens so viele wie die Anzahl der Kerne, besser jedoch multipliziert mit N (wobei N mindestens 3 ist), um den Messfehler zu minimieren, und sie alle gleichzeitig in die Verarbeitung zu geben. Die zum Verarbeiten eines Batches pro Kern erforderliche Zeit ist dann die Gesamtverarbeitungszeit geteilt durch N. Diese Schätzung berücksichtigt mögliche Ressourcenkonflikte zwischen Verarbeitungskernen auf gemeinsam genutzte Ressourcen der Processing Station. Beispiel. Wir haben eine Processing Station mit 8 Kernen und aktiviertem Hyper-Threading, was 16 logische Kerne bzw. Ausführungsprozesse auf dieser Station ergibt. Wir müssen mindestens 16 Kopien eines typischen Batches erstellen, besser wäre jedoch 16 x 3 = 48 Kopien, um den Messfehler zu minimieren. Wir legen alle Batches in den FlexiCapture-Hotfolder, starten den Timer bei der ersten erstellten Importaufgabe und stoppen ihn, nachdem das letzte Ergebnis in das Backend exportiert wurde – er zeigt 15 Minuten an. In dieser Zeit muss jeder Kern 3 Batches verarbeiten, daher beträgt die Zeit zur Verarbeitung von 1 Batch etwa 5 Minuten. Unser Batch hat 69 Seiten, und wir können sagen, dass die Verarbeitung von 1 Seite 4,35 Sekunden dauert.
- Sobald wir die gewünschte Leistung in Seiten pro Stunde oder Tag kennen, können wir die benötigte Anzahl von Kernen abschätzen. Angenommen, Sie müssen P Seiten in der Zeit T verarbeiten. Aus dem Obigen wissen wir bereits, dass 1 Kern die Zeit t für die Verarbeitung von 1 Seite benötigt. Daher benötigen Sie N = (P x t ) / T Kerne. Beispiel. Ein Kunde muss 200.000 Seiten in 8 Stunden verarbeiten, das sind 28.800 Sekunden. Wie wir oben gesehen haben, benötigt 1 Kern 4,35 Sekunden, um 1 Seite zu verarbeiten. Daher benötigen wir (200.000 x 4,35) / 28.800 = 31 Kerne. Somit reichen 2 Processing Stations mit 8 Kernen und aktiviertem Hyper-Threading (insgesamt 32 logische Kerne) für die automatische Verarbeitung aus.
- Die Gesamtlast der Infrastruktur, die zu Engpässen führen kann:
-
- auf der Serverhardware von FlexiCapture;
-
- im Netzwerk; oder
-
- auf externen gemeinsam genutzten Ressourcen (wie Datenbanken, externen Services usw.), die von benutzerdefinierten Verarbeitungsskripten angefordert werden.
-
- Die Anzahl der Verarbeitungskerne, die vom Processing Server bedient werden können. Diese Zahl hängt von der durchschnittlichen Zeit ab, die ein Kern zum Ausführen einer Aufgabe benötigt. Diese Zeit hängt stark von der Batch-Größe (in Seiten) und den implementierten Anpassungen ab. In der Regel kann der Processing Server 120 Verarbeitungskerne bedienen, wenn ein Batch etwa 10 Seiten umfasst. Wenn Sie jedoch eine große Anzahl benutzerdefinierter Stufen mit sehr schnellen Skripten erstellen oder nur eine Seite pro Batch verarbeiten wollen, verkürzt sich die durchschnittliche Aufgabenzeit erheblich, was die maximale Anzahl der Verarbeitungskerne leicht verringern kann.
Um dieses Problem zu erkennen, müssen Sie den Zähler Free Processing Cores auf dem Processing Server überwachen. Wenn Sie feststellen, dass dennoch eine Warteschlange mit zu verarbeitenden Dokumenten vorhanden ist und die Zahl der belegten Kerne irgendwann die Sättigung erreicht, danach aber fast nie weiter ansteigt, ist der beschriebene Effekt eingetreten. So beheben Sie das Problem:
- Verarbeiten Sie nach Möglichkeit den gesamten Batch, ohne ihn in kleine Aufgaben aufzuteilen (siehe Stage Properties im Dialogfeld Workflow settings).
- Verarbeiten Sie Seiten in größeren Einheiten: Erhöhen Sie die durchschnittliche Seitenzahl pro Batch, führen Sie mehrere benutzerdefinierte Stufen zu einer zusammen, oder verlagern Sie die Anpassung in eine Standardstufe, z. B. indem Sie sie einem Routing-Ereignis im Skript dieser Stufe hinzufügen.
