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, ist es sinnvoll, die Gesamtzahl der für die Verarbeitung verfügbaren CPU-Kerne im FlexiCapture-System zu ermitteln. 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 vom Verarbeitungsworkflow (z. B. von der Anzahl der Stufen), den Verarbeitungseinstellungen (Bildverbesserung, Erkennungsmodus, Exporteinstellungen), der Implementierung benutzerdefinierter Verarbeitungsstufen (benutzerdefinierte Engines und Skriptregeln, Zugriff auf externe Ressourcen) sowie von der Hardware ab. 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

Als Grundlage dient das Demo-Projekt „SingleEntryPoint“ (unbeaufsichtigte Verarbeitung, Export in PDF-Dateien) und 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 ein Batch schneller abgeschlossen wird als in der Produktionsumgebung, in der die anderen Kerne mit anderen Batches ausgelastet sind. Um einen zuverlässigen Wert zu erhalten, erstellen Sie mehrere Kopien Ihres typischen Batchs — mindestens so viele, wie Kerne verfügbar sind, und idealerweise N-mal so viele (N ≥ 3) — und verarbeiten Sie sie alle gleichzeitig. 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 wirkt sich negativ oder überhaupt nicht auf die Gesamtleistung aus. In diesem Leitfaden wird beschrieben, wie Sie das System so auslegen, dass Engpässe vermieden werden, und wie Sie Hardware und Infrastruktur auf solche Engpässe überwachen. Auch ohne einen klar erkennbaren Engpass nimmt der Wettbewerb zwischen Verarbeitungskernen um gemeinsam genutzte Ressourcen zu, je mehr Kerne Sie hinzufügen. Wenn Sie voraussichtlich mehr als 50 % der Lese-/Schreibkapazität des Netzwerks oder von FileStorage nutzen, rechnen Sie im obigen Beispiel 20 % zur Verarbeitungszeit pro Seite hinzu — was wiederum 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 Zahl hängt von der durchschnittlichen Zeit ab, die ein Kern für die Bearbeitung einer Aufgabe benötigt. Diese wiederum hängt stark von der Batch-Größe (in Seiten) und den von Ihnen implementierten Anpassungen ab. Typischerweise kann der Processing Server bei etwa 10 Seiten pro Batch 120 Verarbeitungskerne bedienen. Wenn Sie viele benutzerdefinierte Verarbeitungsstufen mit sehr schnellen Skripten erstellen oder nur eine Seite pro Batch verarbeiten, sinkt die durchschnittliche Bearbeitungszeit pro Aufgabe stark, wodurch sich die maximale Anzahl von Kernen, die der Server bedienen kann, leicht verringern kann. Um dies zu erkennen, überwachen Sie die Anzahl freier Verarbeitungskerne auf dem Processing Server. Wenn Sie eine Warteschlange mit zu verarbeitenden Dokumenten haben, die Zahl der belegten Kerne aber bereits am Anschlag ist und fast nie weiter steigt, haben Sie dieses Limit erreicht. 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: Erhöhen Sie die durchschnittliche Anzahl von Seiten pro Batch, führen Sie mehrere benutzerdefinierte Verarbeitungsstufen zu einer zusammen oder verschieben Sie die Anpassung in eine Standardstufe — beispielsweise, indem Sie sie einem Routing-Ereignis im Skript dieser Stufe hinzufügen.