18 votes

Java : Impossible de créer un nouveau thread natif

J'ai une application Java qui est hébergée par une société d'hébergement web. Tous les quelques jours, mon application tombe en panne avec :

[2011-03-09 15:52:14,501] ERROR http-12021-9 
java.lang.OutOfMemoryError: unable to create new native thread
    at java.lang.Thread.start0(Native Method)
    at java.lang.Thread.start(Thread.java:597)

L'hébergeur dit que cela signifie que mon application perd de la mémoire, mais les outils que j'ai montrent que la mémoire libre est toujours disponible. Comme l'erreur crée toujours un nouveau thread natif, je pense que le problème se situe au niveau de la configuration de la JVM et des ressources du système d'exploitation.

Comment puis-je empêcher cette erreur de se produire ?

1voto

sugan Points 11

C'est le problème de linux pour gérer le nombre de fichiers ouverts. Donnez comme suit ulimit -n 65536 (n'importe quel nombre que vous pouvez donner)

0voto

Vladimir Dyuzhev Points 10647

On dirait que le fil fuit. Les fils sont créés mais ensuite bloqués quelque part. Videz périodiquement les threads pour voir si le nombre de threads alloués augmente. Recherchez les threads dormants ou suspendus dans le vidage.

kill -QUIT jvm_pid

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X