Dynamics AX 2012 : Batch servers performance

La configuration des batchs est un bon exemple pour démontrer que les performances du système peuvent être dégradées selon la configuration du système.

Un utilisateur m’a demandé pourquoi l’importation de 3000 lignes via DIXF prenait 30 minutes. En fait, l’importation des données dans les tables temporaires était instantanée, mais le transfert des données entre les tables temporaires et custtable prenait environ 25 à 30 min. 

Pendant l’importation, les ressources SQL étaient peu utilisées et le processeur du serveur AOS (4 coeurs) était utilisé entre 18-23%. Dès ce moment, j’ai su que l’utilisateur exécutait sa requête avec seulement 1 thread.

Premièrement, il faut vérifier le nombre maximum de thread par batch server. Vous pouvez modifier ce chiffre, je conseille 4 fois le nombre de coeurs sur la machine si votre serveur est dédié pour les batchs.

Dans l'exemple ci-dessous, nous avons deux serveurs batch servers avec 8 threads chacun pour un total de 16 threads.



Je conseille toujours d'utiliser les batch groupes. Ensuite, ajouter vos deux batch serveurs dans votre groupe.




Lors de l'importation, il faut spécifier le nombre de tâches, chaque tâche sera exécutée par un thread. 


Finalement, il faut sélectionner Batch Processing et le groupe qui contient les deux batchs serveurs.


L'importation a été exécutée avec 16 threads, l'utilisation CPU de mes serveurs AOS se trouvait entre 60-80% et l'importation a été complété en 3 minutes.
Previous
« Prev Post