2009-07-14 6 views
1

Mon webapp fonctionne sur des instances Tomcat dédiées sur différentes plates-formes et matériels - principalement x86 Linux et Windows, mais aussi Solaris et I sur OS X. J'ai été généralement surpris par la variance des temps d'arrêt entre les OS. Et tomcat semble généralement plus lent si l'arrêt que d'autres services non triviales (httpd, MySQL, calmars.) Ainsi, une série de questions:Combien de temps Tomcat doit-il arrêter?

  • Combien de temps devrait prendre tomcat pour arrêter?
  • Quelle est la raison pour laquelle Tomcat met plus de temps à s'éteindre qu'un simple servlet "Hello World"? Qu'est-ce qu'un gros impact, quel est un petit impact?
  • Pourquoi est-ce que je vois d'aussi grandes différences entre les plateformes?

Je voudrais vraiment des détails. Je suis à moitié convaincu qu'il y a des choses dans le code que je peux faire pour améliorer les temps d'arrêt.

Les temps ne dépassent généralement pas 10-20 s dans certains cas (volume élevé, RHEL4), mais cela me semble excessivement long.

Répondre

5

Vous lancez explicitement un thread (ou en utilisant un exécuteur?). Si vous démarrez explicitement des threads mais ne les définissez pas comme threads de démon, cela retarde généralement l'arrêt de Tomcat. Si vous utilisez un exécuteur, fournissez votre propre ThreadFactory qui crée des threads de démon.

+0

+1 J'ai eu ce problème explicitement. Autre que cela, les temps d'arrêt semblent simples. –

Questions connexes