1、优化JVM参数
修改resin.conf文件,在<server-default>节点下增加配置 JVM参数的子节点<jvm-arg>。 -Xmx和-Xms的值需要根据服务器内存的大小调整,对于多数应用来说,-Xmx配置成1024M,完全能满足使用要求。通常将-Xms与-Xmx选项 的值设置为相同。
<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>
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
</server-default>
2、调整图片Cache图片文件的时间
<web-app-default>
<cache-mapping url-pattern="*.gif" expires="6000s"/>
<cache-mapping url-pattern="*.jpg" expires="6000s"/>
<cache-mapping url-pattern="*.png" expires="6000s"/>
</web-app-default>
3、调整线程池的最大线程数
<server-default>
<thread-max>1024</thread-max>
</server-default>
4、日志输出
如果不配置stdout-log,那么resin会把System.out输出的信息,自动输出到${resinHome}/log/jvm-default.log文件中,且这个文件不会按天存储,随着时间推移,这个文件会越来越大,最后影响系统效率。
<host>
<stdout-log path="${resinHome}/log/stdout.log" timestamp="[%Y-%m-%d %H:%M:%S.%s]" rollover-period="1D"/>
<stderr-log path="${resinHome}/log/stderr.log" timestamp="[%Y-%m-%d %H:%M:%S.%s]" rollover-period="1D"/>
</host>
5、resin-server TIME_WAIT 过多的处理
thread-max指定了最大连接数,
socket-timeout是socket超时时间
keepalive-max指定了长连接的数量,这是可以重复使用的连接,
netstat -an时系统可以看到响应数量的ESTABLISHED状态
设定keepalive-max和把keepalive-timeout调小可以减少TIME_WAIT的数量。
在<server-default>节点下增加配置
<thread-max>10000</thread-max>
<socket-timeout>30s</socket-timeout>
<keepalive-max>512</keepalive-max>
<keepalive-timeout>60s</keepalive-timeout>
6、调整检查程序更新时间间隔的配置
Resin 会在一个指定的周期内,检查一下web-app目录下的classes、jsp、jar以及配置文件是否更新,并且根据检查的情况,确定是否重新装载这些 文件。对于生产系统来说,不会经常更新文件,时间间隔应该加长,提高系统的效率。文本框中配置的时间间隔为20分钟。
<dependency-check-interval>1200s</dependency-check-interval>