L'application, lorsqu'elle est soumise à une charge, utilise parfois 100%.Fils Apache Tomcat en état d'attente avec une utilisation de 100% du processeur
fait un kill -quit <pid>
montré 1100+ fils dans l'état d'attente que:
Full thread dump Java HotSpot(TM) 64-Bit Server VM (16.3-b01 mixed mode):
"http-8080-1198" daemon prio=10 tid=0x00007f17b465c800 nid=0x2061 in Object.wait() [0x00007f1762b6e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00007f17cb087890> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)
at java.lang.Object.wait(Object.java:485)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458)
- locked <0x00007f17cb087890> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484)
at java.lang.Thread.run(Thread.java:619)
"http-8080-1197" daemon prio=10 tid=0x00007f17b465a800 nid=0x2060 in Object.wait() [0x00007f1762c6f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00007f17cb14f460> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)
at java.lang.Object.wait(Object.java:485)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458)
- locked <0x00007f17cb14f460> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484)
at java.lang.Thread.run(Thread.java:619)
............
L'état ne change pas même lorsque le contexte d'application est le DB OU non déployé est redémarré.
Veuillez suggérer une cause probable.
App serveur: Apache Tomcat 6.0.26
Max Threads: 1500
Threads dans l'état WAITING: 1138
Nous testons la charge avec 7500 utilisateurs simultanés. Y a-t-il une approximation pour le nombre de threads au ratio de simultanéité? –
@Mohit: Test de charge est la bonne façon de procéder. Cela dépend de la durée de chaque requête par utilisateur et du traitement qui sera généralement effectué. http://people.apache.org/~mturk/docs/article/ftwai.html indique * Pour tirer le meilleur parti de Tomcat, vous devez limiter le nombre de requêtes simultanées à 200 par CPU. * – JoseK
7500 utilisateurs ou demandes simultanés ** - c'est beaucoup - alors êtes-vous en cluster? – JoseK