Estoy usando liferay 6.0.6 con tomcat 6 y terracota 3.5.4. La instalación de terracota en otro servidor y funciona bien.
Los sistemas Debian y Redhat son máquinas virtuales y utilizan exactamente el mismo hardware virtual. 1 CPU, 4 GB de RAM, ambos SO de 64 bits.
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.3) (rhel-1.48.1.11.3.el6_2-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
Si estoy usando un sistema Debian y arranco la aplicación, entonces todo funciona como se esperaba.
Si estoy usando el sistema redhat, aparece un error:
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:657)
at java.util.Timer.<init>(Timer.java:176)
at com.tc.object.locks.ClientLockManagerImpl.<init>(ClientLockManagerImpl.java:39)
at com.tc.object.StandardDSOClientBuilder.createLockManager(StandardDSOClientBuilder.java:190)
at com.tc.object.DistributedObjectClient.start(DistributedObjectClient.java:639)
at com.tc.object.bytecode.ManagerImpl$2.execute(ManagerImpl.java:263)
at com.tc.lang.StartupHelper.startUp(StartupHelper.java:39)
at com.tc.object.bytecode.ManagerImpl.startClient(ManagerImpl.java:281)
at com.tc.object.bytecode.ManagerImpl.init(ManagerImpl.java:202)
at com.tc.object.bytecode.ManagerImpl.init(ManagerImpl.java:190)
at com.tc.object.bytecode.hook.impl.DSOContextImpl.createStandaloneContext(DSOContextImpl.java:179)
at org.terracotta.express.StandaloneL1Boot.call(StandaloneL1Boot.java:190)
at org.terracotta.express.ClientImpl.<init>(ClientImpl.java:309)
at org.terracotta.express.ClientFactoryImpl.newClient(ClientFactoryImpl.java:232)
at org.terracotta.express.ClientFactoryImpl.createClient(ClientFactoryImpl.java:225)
at org.terracotta.express.ClientFactoryImpl.createClient(ClientFactoryImpl.java:212)
at org.terracotta.express.ClientFactoryImpl.getOrCreateClient(ClientFactoryImpl.java:190)
at org.terracotta.express.ClientFactory.getOrCreateClient(ClientFactory.java:28)
at net.sf.ehcache.terracotta.StandaloneTerracottaClusteredInstanceFactory.<init>(StandaloneTerracottaClusteredInstanceFactory.java:37)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
La parte más extraña de este error es que la memoria no se usa. He configurado el Xmx a 3500 m, pero el uso de la memoria nunca supera los 2,3 gb.
He estado buscando una posible causa y encontré esto: Límite bajo de subprocesos de un solo proceso de Java en Red Hat Linux
Así que cambié mi ulimit -n y ulimit -u a 80000 pero todavía nada cambia.
Luego edité mi /etc/security/limits.conf
* soft nproc 81920
* hard nproc 81920
* soft nofile 81920
* hard nofile 81920
También edité /etc/sysctl.conf
fs.file-max = 100000
Luego reinicié.
También agregué -Xms = 2g a mi setenv.sh
Aumenté -Xss a -Xss5000k
Ejecuto echo 200000> / proc / sys / kernel / threads-max
Pero el mismo error sigue apareciendo. Algunas ideas ?
free -m al comienzo del arranque
total used free shared buffers cached
Mem: 3963 1027 2935 0 25 748
-/+ buffers/cache: 253 3709
Swap: 2047 18 2029
libre -m justo antes del choque
total used free shared buffers cached
Mem: 3963 2897 1065 0 31 823
-/+ buffers/cache: 2043 1920
Swap: 2047 18 2029
Actualización: también probé con una máquina con 8 gb de ram y aparece el mismo resultado.
Tengo la clase y subclase abstracta: A.java: package myPackage; import java.util.ArrayList; import java.util.List; clase abstracta pública A {resumen protegido int getInt (); protegido ...
¿Puedo saber cómo hago un bucle para poder generar código hash para todas las palabras en el archivo (.txt)? Ya puedo generar un código hash único para el archivo. el bucle dado lee y saca las palabras en ...
Tengo esta cadena: Prueba 123 $ {tag1} lorem ipsum $ {tag2} $ {tag3; etiqueta4} $ {etiqueta5; tag6} dixit lorem $ {tag7} dixit lorem $ {tag8}. Me gustaría tener una expresión regular para seleccionar solo el texto entre $ {etiqueta; etiqueta}. ...
¿Cómo funciona hibernate en términos de lecturas y escrituras? ¿Cómo funciona hibernate si la aplicación escribe más en DB? En este caso, entiendo que la memoria caché debe actualizarse para cada escritura, ...