Skip to main content
Um die Rechenressourcen optimal zu nutzen, führt jede Station mehrere Verarbeitungsthreads gleichzeitig aus. Je mehr CPU-Kerne verfügbar sind, desto mehr Threads können parallel verarbeitet werden. Da die Anzahl der CPU-Kerne von Computer zu Computer variiert, ermitteln Sie die Gesamtzahl der für die Verarbeitung verfügbaren CPU-Kerne im FlexiCapture-System. Wenn es im System keine Engpässe gibt, trägt jeder zusätzliche Verarbeitungskern in gleichem Maße zur Leistung des gesamten Systems bei. Daher müssen Sie den Beitrag eines einzelnen Kerns abschätzen und dann ermitteln, wie viele Kerne Sie benötigen, um die gewünschte Leistung zu erreichen. Wie viele Seiten ein Verarbeitungskern in einem bestimmten Zeitraum verarbeiten kann, hängt stark ab von:
  • Dem Verarbeitungsworkflow, beispielsweise der Anzahl der Verarbeitungsstufen
  • Den Verarbeitungseinstellungen wie Bildverbesserung, Erkennungsmodus und Exporteinstellungen
  • Der Implementierung benutzerdefinierter Verarbeitungsstufen, einschließlich benutzerdefinierter Engines, Skriptregeln und Zugriff auf externe Ressourcen
  • Der Hardware
Wenn Sie zu diesen Details keine Informationen haben, aber bereits eine Schätzung benötigen, können Sie das folgende Diagramm als Orientierung verwenden. Sehr wahrscheinlich erhalten Sie in Ihrem Projekt jedoch andere Ergebnisse.
Diagramm, das als Orientierung die Abhängigkeit der Leistung von der Anzahl der Verarbeitungskerne zeigt, wobei Tausende in 24 Stunden verarbeiteter Seiten gegen Verarbeitung-CPU-Kerne aufgetragen werden und die Linie bei 100 Kernen linear auf etwa 2.000 Tausend Seiten ansteigt.

Abhängigkeit der Leistung von der Anzahl der Verarbeitungskerne

Die vorstehende Grundlage wurde ermittelt mit:
  • Dem Demo-Projekt SingleEntryPoint mit unbeaufsichtigter Verarbeitung und Export in PDF-Dateien
  • Für Schwarzweißseiten Processing Stations mit 10 Kernen, 2,4 GHz, 16 GB RAM, SSD und 1 Gb/s NIC

Anzahl der Verarbeitungskerne schätzen

Messen Sie, wie lange ein Kern für die Verarbeitung einer Seite benötigt, und teilen Sie dann Ihr Zielvolumen durch diesen Wert.
  1. Konfigurieren Sie den Workflow Ihres Projekts, wählen Sie die Processing Station mit einer Hardware, die Ihrer Produktionsumgebung möglichst nahekommt, und erstellen Sie einen typischen Batch von Bildern.
  2. Messen Sie, wie lange ein Kern für die Verarbeitung eines Batchs benötigt. Es reicht nicht aus, einen Batch nur einmal zu verarbeiten. Während des Tests verteilt FlexiCapture die Arbeit auf alle verfügbaren Kerne, sodass der Batch schneller abgeschlossen wird als in der Produktionsumgebung. In der Produktionsumgebung sind die anderen Kerne mit anderen Batches ausgelastet. Um einen zuverlässigen Wert zu erhalten, erstellen Sie mehrere Kopien Ihres typischen Batchs und verarbeiten Sie sie alle gleichzeitig. Verwenden Sie mindestens so viele Kopien, wie Kerne verfügbar sind, und idealerweise N-mal so viele, wobei N ≥ 3. Die Zeit pro Batch und Kern ergibt sich aus der gesamten Verarbeitungszeit geteilt durch N. Damit wird auch berücksichtigt, dass die Kerne um die gemeinsam genutzten Ressourcen der Station konkurrieren.
  3. Berechnen Sie die Anzahl der benötigten Kerne:
    wobei P die Anzahl der zu verarbeitenden Seiten ist, t die Zeit für die Verarbeitung einer Seite und T die verfügbare Zeit.

Rechenbeispiel

  • Eine Processing Station mit 8 Kernen und Hyper-Threading bietet 16 logische Kerne (16 Ausführungsprozesse).
  • Erstellen Sie 16 × 3 = 48 Kopien eines typischen Batches (×3, um den Messfehler zu verringern) und verarbeiten Sie sie in einem Durchgang.
  • Der Durchlauf dauert 15 Minuten. Jeder Kern verarbeitet 3 Batches, daher dauert ein Batch etwa 5 Minuten.
  • Der Batch hat 69 Seiten, daher dauert eine Seite etwa 4,35 Sekunden.
  • Um 200.000 Seiten in 8 Stunden (28.800 Sekunden) zu verarbeiten: N = (200.000 × 4,35) / 28.800 ≈ 31 Kerne.
  • Daher reichen 2 Processing Stations mit jeweils 8 Kernen und Hyper-Threading (insgesamt 32 logische Kerne) für die automatische Verarbeitung aus.

Begrenzende Faktoren

Zwei Faktoren begrenzen die sinnvolle Anzahl der Verarbeitungskerne im System.

Auslastung der Infrastruktur

Die Gesamtauslastung der Infrastruktur kann zu Engpässen führen:
  • bei der Hardware des FlexiCapture-Servers
  • im Netzwerk
  • bei externen gemeinsam genutzten Ressourcen (z. B. Datenbanken und externen Services), auf die von benutzerdefinierten Verarbeitungsskripten zugegriffen wird
Ein Engpass führt zu einer Leistungssättigung. Das Hinzufügen eines weiteren Verarbeitungskerns hat dann keine oder sogar negative Auswirkungen auf die Gesamtleistung. Weitere Informationen finden Sie unter Systemüberwachung und Engpasserkennung. Auch ohne einen klar erkennbaren Engpass nimmt der Wettbewerb zwischen Verarbeitungskernen um gemeinsam genutzte Ressourcen zu, je mehr Kerne Sie hinzufügen. Angenommen, Sie erwarten, mehr als 50 % der Lese-/Schreibkapazität des Netzwerks oder von FileStorage zu nutzen. Rechnen Sie 20 % zur Verarbeitungszeit pro Seite im Rechenbeispiel hinzu, was bedeutet, dass Sie etwa 20 % mehr Verarbeitungskerne benötigen. Damit Kerne externe Ressourcen schneller erreichen, verwenden Sie Caching. Verbinden Sie beispielsweise eine Datenbank nicht direkt, sondern mit einem FlexiCapture-Datensatz, und greifen Sie aus Ihren Skripten auf den Datensatz zu.

Kapazität des Processing Server

Der Processing Server kann nur eine begrenzte Anzahl von Verarbeitungskernen bedienen. Diese Anzahl hängt von der durchschnittlichen Zeit ab, die ein Kern für die Ausführung einer Aufgabe benötigt. Die Aufgabendauer hängt wiederum maßgeblich von der Batchgröße in Seiten und von den implementierten Anpassungen ab. Bei etwa 10 Seiten pro Batch kann der Processing Server in der Regel 120 Verarbeitungskerne bedienen. Sehr schnelle benutzerdefinierte Skripte oder Batches mit nur einer Seite verkürzen die durchschnittliche Aufgabendauer erheblich. Dadurch kann sich die maximale Anzahl der Kerne, die der Server bedienen kann, geringfügig verringern. Um dies festzustellen, überwachen Sie die Anzahl der freien Verarbeitungskerne auf dem Processing Server. Sie haben die Kapazitätsgrenze erreicht, wenn eine Warteschlange von Dokumenten vorhanden ist, die Anzahl der belegten Kerne jedoch ihren Höchstwert erreicht hat und fast nie steigt. 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-Einstellungen“).
  • Verarbeiten Sie Seiten in größeren Einheiten, auf eine der folgenden Arten:
    • Erhöhen Sie die durchschnittliche Anzahl der Seiten pro Batch
    • Führen Sie mehrere benutzerdefinierte Verarbeitungsstufen zu einer zusammen
    • Verschieben Sie die Anpassung in eine Standardstufe, indem Sie sie beispielsweise einem Routing-Ereignis im Skript dieser Stufe hinzufügen