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
Comme on peut le voire les jar sont bien exécuté en parallèle, et non séquentiellement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
Partager