Passer au contenu principal
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 le nombre de threads traités en parallèle est élevé. Comme le nombre de cœurs CPU varie d’un ordinateur à l’autre, il est logique de compter le nombre total de cœurs 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 (amélioration d’image, mode de reconnaissance, paramètres d’export), de l’implémentation des étapes personnalisées (engines personnalisés et règles de script, accès à des ressources externes) et du matériel. Si vous ne disposez encore d’aucune donnée à ce sujet mais avez besoin d’une estimation approximative, utilisez le graphique ci-dessous comme référence de base — même si 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.
La référence de base ci-dessus utilise le projet de démonstration « SingleEntryPoint » (traitement sans intervention, export vers des fichiers PDF) et, 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 qu’un lot se termine plus rapidement qu’en production, où les autres cœurs sont occupés à traiter d’autres lots. Pour obtenir une valeur fiable, créez plusieurs copies de votre lot type — au moins autant qu’il y a de cœurs, et idéalement N fois plus (N ≥ 3) — et traitez-les toutes en même temps. Le temps de traitement par lot et par cœur correspond au temps total de traitement divisé par N, ce qui 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 :
    N = (P × t) / T
    
    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 a un effet négatif, voire aucun effet, sur les performances globales. Ce guide explique comment concevoir le système pour éviter les goulots d’étranglement et comment les surveiller au niveau du matériel et de l’infrastructure. 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. Si vous prévoyez 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 ci-dessus — ce qui signifie à son tour 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, qui dépend lui-même fortement de la taille des lots (en 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. Si vous créez de nombreuses étapes personnalisées avec des scripts très rapides, ou si vous traitez une page par lot, la durée moyenne des tâches chute fortement, ce qui peut légèrement réduire le nombre maximal de cœurs que le Processing Server peut prendre en charge. Pour le détecter, surveillez le nombre de cœurs de traitement disponibles sur le Processing Server. Si vous avez une file d’attente de documents à traiter, mais que le nombre de cœurs occupés a atteint la saturation et n’augmente presque jamais, vous avez atteint cette limite. Pour y remédier :
  • Traitez le lot complet sans le diviser en petites tâches lorsque c’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 portions plus importantes : augmentez le nombre moyen de pages par lot, fusionnez plusieurs étapes personnalisées en une seule, ou déplacez la personnalisation dans une étape standard — par exemple, en l’ajoutant à un événement de routage dans le script de cette étape.