Probléme lors de l'exécution de plusieurs jars en parallél
Bonjour,
je suis actuellement sur un projet ou j'ai développé un jar exécutable qui appel un Web service qui met jusqu'à 10 secondes à répondre.
ce jar est appelé par un programme perl.
Pour des raison historique nous ne pouvons pas modifier cet architecture.
afin accélérer le traitement nous devons appeler le jar plusieurs fois de façon parallèle, nous faisons donc un fork dans le code perl qui exécute la commande:
java -jar callWS.jar
Le problème que nous rencontrons est que les jars ne sont s'exécutent en rafale mais avec des pause, comme le montre les logs ci-dessous
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| début de l'exécution de l'appel 1: 15:39:10:054
début de l'exécution de l'appel 2: 15:39:10:668
début de l'exécution de l'appel 3: 15:39:11:017
début de l'exécution de l'appel 4: 15:39:12:369
début de l'exécution de l'appel 5: 15:39:13:837
début de l'exécution de l'appel 6: 15:39:18:084
fin l'exécution de l'appel 3: 15:39:19,126
fin l'exécution de l'appel 1: 15:39:19,530
début de l'exécution de l'appel 6: 15:39:20:109
fin l'exécution de l'appel 4: 15:39:20,592
fin l'exécution de l'appel 2: 15:39:20,654
debut de l'exécution de l'appel 7: 15:39:22,329
fin l'exécution de l'appel 5: 15:39:23,911 |
Comme on peut le voire les jar sont bien exécuté en parallèle, et non séquentiellement.
le problème, est dans le démarrage on voit des temps de pause, en effet on voit:
614ms entre le début de l'appel 1 et le début de l'appel 2
349ms entre le 2 et le 3
1s352ms entre le 3 et le 4
1,5s entre le 4 et le 5
5s entre le 5 et le 6
les pauses sont en moyenne de 4s sur le reste des appels
Je ne sais pas à quoi sont du ces pause, j'imagine que étant un jar exécutable, il lui faut le temps de démarré la jvm (mais je n'en suis pas sur).
est ce que quelqu'un aurait une solution ou un conseil afin supprimer ces pauses.
P.S: nous avons vérifié coté perl les appels sont fait toutes les 10ms
Merci par avance.