
- Configurez le workflow de votre projet, prenez la Processing Station dont les caractéristiques matérielles sont les plus proches de celles qui seront utilisées en production, et créez un lot d’images typique.
- Nous allons mesurer le temps nécessaire pour traiter un lot avec un seul cœur. Il ne suffit pas de traiter un lot une seule fois, car FlexiCapture peut répartir le traitement entre tous les cœurs disponibles, et le traitement d’un lot prendra alors moins de temps pendant les tests, tandis qu’en production réelle les autres cœurs seront occupés à traiter d’autres lots. Pour obtenir une estimation fiable, nous recommandons de créer plusieurs copies de votre lot typique — au moins autant que le nombre de cœurs, mais il est préférable de multiplier ce nombre par N (avec une valeur d’au moins 3) afin de minimiser l’erreur de mesure — et de les lancer toutes en traitement simultanément. Le temps nécessaire pour traiter un lot par cœur correspond alors au temps total de traitement divisé par N. Cette estimation tient compte de l’éventuelle concurrence entre les cœurs de traitement pour l’accès aux ressources partagées de la Processing Station. Exemple. Nous avons une Processing Station à 8 cœurs avec Hyper-Threading activé, ce qui nous donne 16 cœurs logiques et processus d’exécution sur cette Processing Station. Nous devons créer au moins 16 copies d’un lot typique, mais il vaut mieux en créer 16 x 3 = 48 pour minimiser l’erreur de mesure. Nous plaçons tous les lots dans le hotfolder FlexiCapture, démarrons le chronomètre à la création de la première tâche d’importation et l’arrêtons après l’exportation du dernier résultat vers le backend — il affichera 15 minutes. Pendant ce temps, chaque cœur doit traiter 3 lots ; le temps nécessaire pour traiter 1 lot est donc d’environ 5 minutes. Notre lot contient 69 pages, et nous pouvons dire qu’il faut 4,35 secondes pour traiter 1 page.
- Une fois les performances souhaitées connues en pages par heure ou par jour, nous pouvons estimer le nombre de cœurs requis. Supposons que vous deviez traiter P pages en un temps T. Nous savons déjà, d’après ce qui précède, qu’un cœur a besoin d’un temps t pour traiter 1 page. Vous avez donc besoin de N = (P x t ) / T cœurs. Exemple. Un client doit traiter 200 000 pages en 8 heures, soit 28 800 secondes. Comme nous le savons d’après ce qui précède, 1 cœur met 4,35 secondes à traiter 1 page. Nous avons donc besoin de (200 000 x 4.35) / 28,800 = 31 cœurs. Ainsi, 2 Processing Stations avec 8 cœurs et Hyper-Threading activé (32 cœurs logiques au total) suffiront pour le traitement automatique.
- La charge totale sur l’infrastructure, qui peut entraîner des goulots d’étranglement :
-
- au niveau du matériel du serveur FlexiCapture ;
-
- au niveau du réseau ; ou
-
- au niveau des ressources externes partagées (comme les bases de données, les services externes, etc.) sollicitées par des scripts de traitement personnalisés.
-
- Le nombre de cœurs de traitement pouvant être pris en charge par le Processing Server. Ce nombre dépend du temps moyen nécessaire à un cœur pour exécuter une tâche. Ce temps dépend fortement de la taille du lot (en pages) et des personnalisations mises en place. En général, si un lot contient environ 10 pages, le Processing Server peut prendre en charge 120 cœurs de traitement. En revanche, si vous créez un grand nombre d’étapes personnalisées avec des scripts très rapides, ou si vous prévoyez de traiter une page par lot, vous réduirez sensiblement le temps moyen d’une tâche, ce qui peut entraîner une légère diminution du nombre maximal de cœurs de traitement.
Pour détecter ce problème, vous devez surveiller le compteur Free Processing Cores sur le Processing Server. Si vous constatez que, malgré cela, vous avez une file d’attente de documents à traiter, que le nombre de cœurs occupés a atteint un palier de saturation à un moment donné et le dépasse ensuite rarement, alors vous êtes confronté au phénomène décrit. Pour y remédier :
- traitez le lot dans son intégralité 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 lots plus importants : augmentez le nombre moyen de pages par lot, fusionnez plusieurs étapes personnalisées en une seule, ou intégrez la personnalisation à une étape standard, par exemple en l’ajoutant à un événement de routage dans le script de cette étape.
