resin4.0 permgen space

来源:互联网 发布:mac液体子弹头 编辑:程序博客网 时间:2024/06/06 20:17

出现这个问题的原因网上有很多种分析,就不在这里一一分析了,这里只说解决的办法,就是手动设置jdk参数,在resin的conf/resin.xml中添加配置:

<server-default><jvm-arg>-Xms1024m</jvm-arg><jvm-arg>-Xmx1024m</jvm-arg><jvm-arg>-Xmn256m</jvm-arg><jvm-arg>-XX:PermSize=128m</jvm-arg><jvm-arg>-XX:MaxPermSize=256m</jvm-arg><thread-max>1024</thread-max><socket-timeout>30s</socket-timeout><keepalive-max>512</keepalive-max><keepalive-timeout>60s</keepalive-timeout>  </server-default>

这些参数大家都明白,下面是我的完整的配置:

<!--   - Resin 4.0 configuration file.  --><resin xmlns="http://caucho.com/ns/resin"       xmlns:resin="urn:java:com.caucho.resin">  <!-- property-based Resin configuration -->  <resin:properties path="${__DIR__}/resin.properties" optional="true"/>  <resin:properties path="cloud:/resin.properties"                    optional="true" recover="true"/>  <resin:if test="${properties_import_url}">     <resin:properties path="${properties_import_url}"                    optional="true" recover="true"/>  </resin:if>  <!-- Logging configuration for the JDK logging API -->  <log-handler name="" level="all" path="stdout:"               timestamp="[%y-%m-%d %H:%M:%S.%s]"               format=" {${thread}} ${log.message}"/>                 <!--      - Alternative pseudo-TTCC log format     -     - <log-handler name="" level="all" path="stdout:"     -           timestamp="%y-%m-%d %H:%M:%S.%s"     -           format=" [${thread}] ${log.level} ${log.shortName} - ${log.message}"/>    -->     <!--     - level='info' for production     - 'fine' or 'finer' for development and troubleshooting    -->  <logger name="" level="${log_level?:'info'}"/>  <logger name="com.caucho.java" level="config"/>  <logger name="com.caucho.loader" level="config"/>  <!--     - Default configuration applied to all clusters, including     - HTTP, HTTPS, and /resin-admin configuration.    -->  <resin:import path="${__DIR__}/cluster-default.xml"/>    <!--     - health configuration    -->  <resin:import path="${__DIR__}/health.xml"/>    <!--     - Remote management requires at least one enabled admin user.    -->  <resin:AdminAuthenticator>    <user name="${admin_user}" password="${admin_password}"/>        <resin:import path="${__DIR__}/admin-users.xml" optional="true"/>    <resin:import path="cloud:/admin-users.xml" optional="true" recover="true"/>  </resin:AdminAuthenticator>  <!--     - For clustered systems, create a password in as cluster_system_key    -->  <cluster-system-key>${cluster_system_key}</cluster-system-key>  <!--     - For production sites, change dependency-check-interval to something     - like 600s, so it only checks for updates every 10 minutes.    -->  <dependency-check-interval>${dependency_check_interval?:'2s'}</dependency-check-interval>  <!-- For resin.properties dynamic cluster joining -->  <home-cluster>${home_cluster}</home-cluster>  <home-server>${home_server}</home-server>  <elastic-server>${elastic_server}</elastic-server>  <elastic-dns>${elastic_dns}</elastic-dns>  <!--     - Configures the main application cluster.  Load-balancing configurations     - will also have a web cluster.    -->  <cluster id="app">    <server-default><jvm-arg>-Xms1024m</jvm-arg><jvm-arg>-Xmx1024m</jvm-arg><jvm-arg>-Xmn256m</jvm-arg><jvm-arg>-XX:PermSize=128m</jvm-arg><jvm-arg>-XX:MaxPermSize=256m</jvm-arg><thread-max>1024</thread-max><socket-timeout>30s</socket-timeout><keepalive-max>512</keepalive-max><keepalive-timeout>60s</keepalive-timeout>  </server-default>    <!-- define the servers in the cluster -->    <server-multi id-prefix="app-" address-list="${app_servers}" port="6800"/>    <host-default>      <!-- creates the webapps directory for .war expansion -->      <web-app-deploy path="webapps"                      expand-preserve-fileset="WEB-INF/work/**"                      multiversion-routing="${webapp_multiversion_routing}"                      path-suffix="${elastic_webapp?resin.id:''}"/>    </host-default>    <!-- auto virtual host deployment in hosts/foo.example.com/webapps -->    <host-deploy path="hosts">      <host-default>        <resin:import path="host.xml" optional="true"/>      </host-default>    </host-deploy>    <!-- the default host, matching any host name -->    <host id="" root-directory=".">      <!--         - webapps can be overridden/extended in the resin.xml        -->      <web-app id="/" root-directory="webapps/MyItBook"/>  <web-app id="/manager" root-directory="/home/www/MyItBookManager"/>    </host>          <resin:if test="${resin_doc}">      <host id="${resin_doc_host}" root-directory="${resin_doc_host}">        <web-app id="/resin-doc" root-directory="${resin.root}/doc/resin-doc"/>      </host>    </resin:if>  </cluster>  <cluster id="web">    <!-- define the servers in the cluster -->    <server-multi id-prefix="web-" address-list="${web_servers}" port="6810"/>    <host id="" root-directory="web">      <web-app id="">        <resin:LoadBalance regexp="" cluster="app"/>      </web-app>    </host>  </cluster>  <cluster id="memcached" xmlns:memcache="urn:java:com.caucho.memcached">    <!-- define the servers in the cluster -->    <server-multi id-prefix="memcached-" address-list="${memcached_servers}" port="6820">      <!-- listen for the memcache protocol -->      <listen port="${memcached_port?:11211}"              keepalive-timeout="600s" socket-timeout="600s">        <memcache:MemcachedProtocol/>      </listen>    </server-multi>  </cluster>    <cluster id="proxycache">    <!-- define the servers in the cluster -->    <server-multi id-prefix="proxycache-" address-list="${proxycache_servers}" port="6830"/>    <host id="" root-directory="proxycache">      <web-app id="">        <resin:HttpProxy regexp=".*">          <!-- backend HTTP servers to proxy to -->          <addresses>${backend_servers}</addresses>        </resin:HttpProxy>      </web-app>    </host>  </cluster></resin>


0 0