Estamos obteniendo "java.lang.OutOfMemoryError : unable to create new native Thread
"en 8GB RAM VM después de 32k subprocesos (ps -eLF | grep -c java)
Sin embargo, "top" and "free -m" shows 50% free memory available
. JDk es de 64 bits y se probó con HotSpot y JRockit. El servidor tiene Linux 2.6.18
También probamos los OS stack size (ulimit -s)
límites de ajuste y proceso máximo (ulimit -u), aumento de limit.conf pero todo en vano.
También probamos casi todas las combinaciones posibles de tamaño de almacenamiento dinámico, manteniéndolo bajo, alto, etc.
El script que usamos para ejecutar la aplicación es
/opt/jrockit-jdk1.6/bin/java -Xms512m -Xmx512m -Xss128k -jar JavaNatSimulator.jar /opt/tools/jnatclients/natSimulator.properties
Gracias por la respuesta.
Hemos intentado editar /etc/security/limits.conf y ulimit pero aún así
[root@jboss02 ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 72192
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 72192
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
ExecutorService
) en su lugar.