Skip to main content
Pour exploiter au mieux les ressources informatiques, chaque Station exécute plusieurs threads de traitement simultanément. Plus il y a de cœurs CPU disponibles, plus de threads peuvent être traités en parallèle. Comme le nombre de cœurs CPU varie d’un ordinateur à l’autre, comptez le nombre total de cœurs CPU de traitement dans le système FlexiCapture. S’il n’y a pas de goulots d’étranglement dans le système, chaque nouveau cœur de traitement contribue de manière égale aux performances globales. Vous pouvez donc estimer la contribution d’un cœur, puis déterminer combien de cœurs sont nécessaires pour atteindre les performances cibles. Le nombre de pages qu’un cœur traite sur une période donnée dépend fortement :
  • Du workflow de traitement, par exemple du nombre d’étapes
  • Des paramètres de traitement, tels que l’amélioration d’image, le mode de reconnaissance et les paramètres d’export
  • De l’implémentation des étapes personnalisées, y compris les engines personnalisés, les règles de script et l’accès à des ressources externes
  • Du matériel
Si vous ne disposez encore d’aucune donnée à ce sujet mais avez besoin d’une estimation approximative, utilisez le graphique suivant comme référence de base. Votre projet donnera très probablement des résultats différents.
Graphique montrant, comme référence de base, la dépendance des performances au nombre de cœurs de traitement, avec en ordonnée des milliers de pages traitées en 24 heures et en abscisse les cœurs de traitement, la courbe augmentant linéairement jusqu’à environ 2 000 milliers de pages pour 100 cœurs.

Variation des performances en fonction du nombre de cœurs de traitement

Cette référence de base a été établie avec :
  • Le projet de démonstration SingleEntryPoint, utilisant le traitement sans intervention et l’export vers des fichiers PDF
  • Pour les pages en noir et blanc, des Processing Stations à 10 cœurs à 2,4 GHz avec 16 Go de RAM, un SSD et une carte réseau 1 Gb/s

Estimer le nombre de cœurs de traitement

Mesurez le temps nécessaire à un cœur pour traiter une page, puis divisez votre volume cible par cette valeur.
  1. Configurez le workflow de votre projet, choisissez la Processing Station dont la configuration matérielle se rapproche le plus de votre environnement de production et créez un lot d’images représentatif.
  2. Mesurez le temps nécessaire à un cœur pour traiter un lot. Traiter un lot une seule fois ne suffit pas. Pendant le test, FlexiCapture répartit la charge sur tous les cœurs disponibles, de sorte que le lot se termine plus rapidement qu’en production. En production, les autres cœurs sont occupés à traiter d’autres lots. Pour obtenir une valeur fiable, créez plusieurs copies de votre lot type et traitez-les toutes en même temps. Utilisez au moins autant de copies qu’il y a de cœurs, et idéalement N fois plus, où N ≥ 3. Le temps de traitement par lot et par cœur correspond au temps total de traitement divisé par N. Cela tient également compte de la concurrence entre les cœurs pour l’accès aux ressources partagées de la Station.
  3. Calculez le nombre de cœurs dont vous avez besoin :
    où P est le nombre de pages à traiter, t le temps nécessaire pour traiter une page et T le temps disponible.

Exemple concret

  • Une Processing Station à 8 cœurs avec Hyper-Threading dispose de 16 cœurs logiques (16 processus d’exécution).
  • Créez 16 × 3 = 48 copies d’un lot type (×3 pour réduire l’erreur de mesure) et traitez-les toutes en une seule fois.
  • L’exécution prend 15 minutes. Chaque cœur traite 3 lots, donc un lot prend environ 5 minutes.
  • Le lot comporte 69 pages, donc une page prend environ 4,35 secondes.
  • Pour traiter 200 000 pages en 8 heures (28 800 secondes) : N = (200 000 × 4,35) / 28 800 ≈ 31 cœurs.
  • Ainsi, 2 Processing Stations de 8 cœurs chacune avec Hyper-Threading (32 cœurs logiques au total) suffisent pour le traitement automatique.

Facteurs limitants

Deux facteurs limitent le nombre de cœurs de traitement effectivement utiles dans le Système.

Charge de l’infrastructure

La charge totale de l’infrastructure peut créer des goulots d’étranglement :
  • Au niveau du matériel du serveur FlexiCapture
  • Au niveau du réseau
  • Au niveau de ressources partagées externes (comme des bases de données et des services externes) sollicitées par des scripts de traitement personnalisés
Un goulot d’étranglement entraîne une saturation des performances. L’ajout d’un cœur de traitement supplémentaire n’a alors aucun effet sur les performances globales, voire un effet négatif. Pour plus d’informations, voir Surveillance du système et détection des goulots d’étranglement. Même en l’absence de goulot d’étranglement clairement identifié, la concurrence entre les cœurs de traitement pour l’accès aux ressources partagées augmente à mesure que vous ajoutez des cœurs. Supposons que vous prévoyiez d’utiliser plus de 50 % de la capacité de lecture/écriture du réseau ou de FileStorage. Ajoutez 20 % au temps de traitement par page dans l’exemple concret, ce qui signifie qu’il vous faudra environ 20 % de cœurs de traitement supplémentaires. Pour permettre aux cœurs d’accéder plus rapidement aux ressources externes, utilisez la mise en cache. Par exemple, au lieu de vous connecter directement à une base de données, connectez-la à un FlexiCapture Data Set et interrogez ce Data Set depuis vos scripts.

Capacité du Processing Server

Le Processing Server ne peut prendre en charge qu’un nombre limité de cœurs de traitement. Ce nombre dépend du temps moyen nécessaire à un cœur pour exécuter une tâche. La durée des tâches dépend elle-même fortement de la taille des lots, en nombre de pages, et des personnalisations que vous mettez en œuvre. En règle générale, avec environ 10 pages par lot, le Processing Server peut prendre en charge 120 cœurs de traitement. Des scripts personnalisés très rapides ou des lots d’une seule page font fortement chuter la durée moyenne des tâches. Cela peut légèrement réduire le nombre maximal de cœurs que le Server peut prendre en charge. Pour détecter ce problème, surveillez le nombre de cœurs de traitement disponibles sur le Processing Server. Vous avez atteint la limite lorsqu’une file d’attente de documents se forme, mais que le nombre de cœurs occupés est saturé et n’augmente presque jamais. Pour y remédier :
  • Traitez l’ensemble du lot sans le diviser en petites tâches lorsque cela est possible (voir les propriétés de l’étape dans la boîte de dialogue des paramètres du workflow).
  • Traitez les pages par groupes plus importants, de l’une des manières suivantes :
    • Augmentez le nombre moyen de pages par lot
    • Fusionnez plusieurs étapes personnalisées en une seule
    • Déplacez la personnalisation vers une étape standard, par exemple en l’ajoutant à un événement de routage dans le script de cette étape