Está en la página 1de 3

-Xms999 Es el tamaño inicial de la memoria para la aplicación.

El valor 999 se puede poner como


1024M para 1024 MegaBytes. Es decir, el parámetro debe ser -Xms1024M (incluye el guión
inicial)
-Xmx999 Es el tamaño máximo de la memoria para la aplicación. El valor 999 se puede poner
como 4096M para 4GB de memoria. Es decir, el parámetro debe ser -Xmx4096M (incluye el guión
inicial). Ojo, debes reservar espacio para la memoria del sistema operativo y sus servicios (por ello
es necesario que el servidor solo se dedique a un solo servicio, en este caso, para el GlassFish). Y,
es una de las razones porque prefiero un servidor Linux sin entorno gráfico para usar un Java EE
server: el entorno gráfico consume demasiados recursos de memoria.

<jvm-options>-Xmx1024m</jvm-options>
<jvm-options>-Xms1024m</jvm-options>

<jvm-options>-client</jvm-options>
<jvm-options>-server</jvm-options>

<jvm-options>--XX:+UseParallelOldGC</jvm-options>

<jvm-options>-Xss128k, -XX:+DisableExplicitGC, -XX:ParallelGCThreads=N</jvm-
options>

1. Evitemos el autodeploy y la recarga dinámica, esto toma tiempo y no es deseable,


configuramos lo siguiente: <das-config autodeploy-enabled="false" dynamic-reload-
enabled="false"></das-config>
2. Aceptor Threads: Si se tiene por ejemplo, un servidor con 2 CPU’s de 4 núcleos
cada uno, el valor de este parámetro debe ser 8. Para configurarlo ve a la consola de
administración y busca la siguiente direccion Configuration -> Network Config ->
Transports -> tcp -> Acceptor threads
3. Cacheo de recursos estáticos: Configuration -> Network Config -> Protocols -> http-listener-1
-> File Cache -> Enabled. De tener conexiones HTTPS habilitarlo también para el
listener seguro.
4. Si el servidor solo posee un Network Interface Card (NIC) reemplaza todos los
valores 0.0.0.0 de los http listeners con el IP del servidor, como se
muestra Configuration -> Network Config -> Network Listeners -> <listener_name> -> Address
5. Modificar el fichero default-web.xml ubicado en %GLASSFISH_HOME
%/glassfish/domains/<DOMAIN_NAME>/config como se muestra:

6. <servlet>
7. <servlet-name>jsp</servlet-name>
8. <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
9. <init-param>
10. <param-name>development</param-name>
11. <param-value>false</param-value>
12. </init-param>
13. <init-param>
14. <param-name>genStrAsCharArray</param-name>
15. <param-value>true</param-value>
16. </init-param>
17. ...
18. </servlet>

Optimizaciones para JDBC


Para drivers JDBC de Oracle pueden configurarse las siguientes opciones:
ImplicitCachingEnabled=true
MaxStatements=200
Configurar los valores del Pool de conexiones steady-pool-size y max-pool-size con el mismo valor.
Una regla general es configurar estos valores con el mismo número que se ha configurado en los
HTTP request processing threads
Sobre la marcha seguimos trabajando con Glassfish (ahora en su versión 4) y estos ajustes seguro
que se irán actualizando.

De alguien
<java-config debug-options="-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009" system-classpath="" classpath-
suffix="">
        <jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy</jvm-
options>
        <jvm-options>-Dfelix.fileinstall.disableConfigSave=false</jvm-options>
        <jvm-options>-Dosgi.shell.telnet.maxconn=1</jvm-options>
        <jvm-options>-XX:NewRatio=2</jvm-options>
        <jvm-options>-Dfelix.fileinstall.poll=5000</jvm-options>
        <jvm-options>-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed$
{path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
        <jvm-options>-Dosgi.shell.telnet.port=6666</jvm-options>
        <jvm-options>-
Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbe
ans.AppserverConfigEnvironmentFactory</jvm-options>
        <jvm-options>-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}$
{com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-
options>
        <jvm-options>-Dgosh.args=--nointeractive</jvm-options>
        <jvm-options>-
Djavax.management.builder.initial=com.sun.enterprise.v3.admin.AppServerMBeanServerBuilder</j
vm-options>
        <jvm-options>-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as</jvm-options>
        <jvm-options>-XX:MaxPermSize=192m</jvm-options>
        <jvm-options>-XX:+UnlockDiagnosticVMOptions</jvm-options>
        <jvm-options>-Dfelix.fileinstall.bundles.startTransient=true</jvm-options>
        <jvm-options>-Dfelix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/</jvm-
options>
        <jvm-options>-Dfelix.fileinstall.bundles.new.start=true</jvm-options>
        <jvm-options>-Xmx1024m</jvm-options>
        <jvm-options>-Djava.security.auth.login.config=$
{com.sun.aas.instanceRoot}/config/login.conf</jvm-options>
        <jvm-options>-Dosgi.shell.telnet.ip=127.0.0.1</jvm-options>
        <jvm-options>-Dfelix.fileinstall.log.level=2</jvm-options>
        <jvm-options>-
Dorg.glassfish.additionalOSGiBundlesToStart=org.apache.felix.shell,org.apache.felix.gogo.runtime,
org.apache.felix.gogo.shell,org.apache.felix.gogo.command</jvm-options>
        <jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks</jvm-
options>
        <jvm-options>-server</jvm-options>
        <jvm-options>-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver</jvm-options>
        <jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-
options>
        <jvm-options>-DANTLR_USE_DIRECT_CLASS_LOADING=true</jvm-options>
      </java-config>

También podría gustarte