miércoles, 27 de agosto de 2014

Aumentar Memoria a Tomcat

Hola, muchas veces debemos asignar mayor recurso de memoria a tomcat, y esto lo podemos hacer configurando el archivo catalina.sh en linux o catalina.bat en windows, este se encuentra en el directorio bin de apache-tomcat, agregando la linea:

export JAVA_OPTS="-Xms1024m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m"

En otros casos.. cuando estamos desarrollando con eclipse, y tenemos ahí configurado nuestro tomcat con el plugin sysdeo, podemos agregar estas variables al parametro JVM settings que esta en :

Windows -> preferences -> >Tomcat -> JVM Settings

y ahí clikeamos add al campo Append to JVM Parameters, se abre una ventana de dialogo y podemos agregar las mismas opciones de jvm

-Xmx512m -Xms512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=128m

con esto ya tendríamos mas memoria asignada de nuestra java virtual machine a tomcat

saludos

Ver procesos Java

Hola, en algunos casos tenemos mas de un proceso java corriendo en nuestros sistema linux, para ver que process ID corresponde a que proceso Java podemos ejecutar el siguiente comando por consola, y desde cualquier ruta de nuestro SO:

slack@zion:~/programas/redmine-2.5.1-1$ ps -fea | grep java

el resultado de este debiera ser similar a lo siguiente, siempre y cuando tengamos procesos java corriendo.

slack     4652  4650 11 09:40 ?        00:06:29 /usr/bin/java -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m -jar /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar -os linux -ws gtk -arch x86_64 -showsplash /home/slack/programas/eclipse_kepler//plugins/org.eclipse.platform_4.3.2.v20140221-1700/splash.bmp -launcher /home/slack/programas/eclipse_kepler/eclipse -name Eclipse --launcher.library /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212/eclipse_1508.so -startup /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar --launcher.appendVmargs -exitdata 140003 -product org.eclipse.epp.package.jee.product -vm /usr/bin/java -vmargs -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m -jar /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
slack    10308     1 58 10:22 ?        00:09:44 /home/slack/programas/java/jdk1.6.0_05/jre/bin/java -Dcatalina.home=/home/slack/programas/apache-tomcat-5.5.33 -classpath /home/slack/programas/java/jdk1.6.0_05/lib/tools.jar:/home/slack/programas/apache-tomcat-5.5.33/bin/bootstrap.jar org.apache.catalina.startup.Bootstrap start
slack    11663  3189  0 10:38 pts/0    00:00:00 grep --color=auto java


Bueno, aunque parezca difícil de leer, podemos identificar claramente aquí los procesos java corriendo en nuestro sistema,  donde :

primero va el usuario que esta ejecutando el proceso, aqui es : slack

luego de este parametro se indica el process id, PID, donde aqui para el primer proceso es : 4652

y seguidamente va la hora desde que corre el proceso, aqui para mi primer proceso de la lista es : 09:40

y posteriormente va el comando que se esta ejecutando, aqui es : /usr/bin/java -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m -jar /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar -os linux -ws gtk -arch x86_64 -showsplash /home/slack/programas/eclipse_kepler//plugins/org.eclipse.platform_4.3.2.v20140221-1700/splash.bmp -launcher /home/slack/programas/eclipse_kepler/eclipse -name Eclipse --launcher.library /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212/eclipse_1508.so -startup /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar --launcher.appendVmargs -exitdata 140003 -product org.eclipse.epp.package.jee.product -vm /usr/bin/java -vmargs -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m -jar /home/slack/programas/eclipse_kepler//plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar

Este corresponde al ide Eclipse, el segundo proceso que podemos identificar de la misma forma corresponde a Tomcat y el tercer proceso es el comando ps -fea | grep java

Entonces cuando queramos matar alguno de estos procesos java, identificamos su PID y ejecutamos por consola:

slack@zion:~/programas/redmine-2.5.1-1$ kill -9 4652

entonces aqui acabamos de matar el proceso Eclipse, y aunque no era el que quería matar resulto bien, si ejecutamos nuevamente el ps -fea , ahora vemos que solo tenemos el proceso tomcat corriendo

slack@zion:~/programas/redmine-2.5.1-1$ ps -fea | grep java

slack    10308     1 75 10:22 ?        00:20:45 /home/slack/programas/java/jdk1.6.0_05/jre/bin/java -Dcatalina.home=/home/slack/programas/apache-tomcat-5.5.33 -classpath /home/slack/programas/java/jdk1.6.0_05/lib/tools.jar:/home/slack/programas/apache-tomcat-5.5.33/bin/bootstrap.jar org.apache.catalina.startup.Bootstrap start
slack    12179  3189  0 10:49 pts/0    00:00:00 grep --color=auto java


ahora matamos tomcat :

slack@zion:~/programas/redmine-2.5.1-1$ kill -9 10308

y volvemos a ejecutar :

slack@zion:~/programas/redmine-2.5.1-1$ ps -fea | grep java

y solo tenemos como resultado :

slack    12263  3189  0 10:52 pts/0    00:00:00 grep --color=auto java

eso es,

saludos