2011-02-25 3 views
1

J'utilise Struts2 dans mon application. Il fonctionne correctement lorsqu'il y a moins d'utilisateurs. Mais en temps réel, il y a environ 3 000 requêtes qui accèdent à l'application. Et après un certain temps, ma machine virtuelle Java s'est écrasée. J'ai vérifié le vidage du thread, il semble y avoir beaucoup de threads bloqués pendant l'exécution de l'expression OGNL.Problème de performance Struts2

Et l'utilisation du CPu est toujours autour de 130% dans les temps de pick.Please me suggèrent quelle sera la meilleure approche pour exécuter l'application stuts2 dans un environnement hautement évolutif.

+0

Pouvez-vous développer la façon dont vous avez effectué les tests? Quels sont les résultats exactement et peut-être si vous avez des expressions étranges OGNL les montrer. Si vous utilisez un framework de test, ajoutez-le à ce tag de questions car vous obtiendrez plus de testeurs experts dans le public. – Quaternion

+0

Quelle est l'erreur lorsque votre JVM se bloque? –

+0

@Steven: Il tombe en panne en raison d'une panne de mémoire dans JVM, et la cause de l'indisponibilité mémoire est due à beaucoup de threads bloqués. – BOSS

Répondre

0

Quelle version de Struuts2 utilisez-vous? il y avait un problème connu avec le langage d'expression OGNL. suivre ce fil

sur la liste de diffusion struts2 il pourrait aider u OGNL Discussion

ces derniers temps, il y a eu beaucoup d'amélioration de la performance avec OGNL donc suffit de spécifier la version Struts2

+0

struts2-core-2.2.1.jar, ognl-3.0.jar – BOSS

4
  • Voyons voir cela, le réglage par défaut pour struts.ognl.enableExpressionCache

### Caches expressions parsés OGNL, mais peut conduire à des fuites de mémoire

### si l'application génère beaucoup de différentes expressions

struts.ognl.enableExpressionCache = true

  • Ou essayez d'optimiser votre application Struts2 par des instructions dans Performance Tuning.
  • Si vous surveillez votre application Struts2 avec Java Melody, l'action Struts2 peut être surveillée en ajoutant un intercepteur.