1.在resin.conf中的session-config内部添加
<session-max>4096</session-max>
<session-timeout>30</session-timeout>
<enable-cookies>true</enable-cookies>
<enable-url-rewriting>true</enable-url-rewriting>
session-max:最大 session数量
session-timeout:session过期时间,以分钟为单位。是否允许cookie :指session是否采用cookies。如果采用cookies,浏览器必须支持session才能使用,发布时建议改成false。enable-url-rewriting和enable-cookies一般配合使用。如果enable-cookies是false,enable-url-rewriting应该设成true比较合适
2.<dependency-check-interval>2s</dependency-check-interval>
环境上下文的检测时间,对于生产站点, 这个要设置长一点,例如600秒,10分钟
resin检查系统配置及java、jsp、resin.conf等文件的时间间隔。
默认值为2秒,适合开发及调试环境,如果是正式环境尽量把参数调大或者直接改为-1,不允许检查,也就是禁止了热部署。
<DEPENDENCY-CHECK-INTERVAL>-1s</DEPENDENCY-CHECK-INTERVAL>
3. 将resin.conf文件中的thread-min,thread-max,thread-keepalive三个参数设置的比较大,分别写 上,1000,3000,1000,当然这是根据你的机器情况和可能同时访问的数量决定的,如果你的网站访问量很大的,应该再适当放大。
然后观察任务管理器中的java线程变化情况,看看到底是线程达到多大的时候,java进程当掉的。我的是在379左右当掉。
然后将thread-min,thread-max,thread-keepalive分别写为150,400,300;,也就是将当掉的时候的最大值稍微放大点,作为thread-max的值,因为该系统一般不会超过这个值。然后其他两个参数根据情况设置一下。 accept-buffer-size值设置的较大,我设置到10000以上,这样可以让java能使用到更多的内存资源。
这样的设置基本上能够满足resin的正常运行,当掉resin服务的情况大大减少
3.当resin启动时,如何指定java的内存大小?
–Xmx设置jvm最大用内存
- Xms设置jvm最小使用内存
将-Xms和-Xmx设置为一样大小是不错的选择,可以避免每次垃圾回收完成后重新分配内存
-Xms 表示启动时,初时内存大小
-XX:MaxNewSize=256m -XX:MaxPermSize=256m 表示:内存的永久保存区域的大小
最好让-Xmn约等于-Xmn的1/4
通过增大 “-XX:PermSize”和“-XX:MaxPermSize”这两个参数来避免出现JVM内存永久保存区域溢出引发Resin的500错误。(郑昀认为,因为线上用了spring+struts,这些框架用到大量动态class,ClassLoader是把这部分内存放在PermGen space里的。而JVM的GC是不会清理PermGen space的。这样容易导致线上应用报告PermGen space内存溢出。)
resin3.1版本, 则只需修改resin.conf,如下配置即可
<jvm-arg>-Xmx2048m</jvm-arg>
<jvm-arg>-Xms1024m</jvm-arg>
<jvm-arg>-Xss1m</jvm-arg>
<jvm-arg>-Xdebug</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
关于大小设置,建议先通过内存测试,然后设置最大内存
4.当resin启动时,如何指定java的内存大小?
1.Window下内存设置: -J"-server -Xms500m -Xmx1000m”
2.Linux配置: resin3/bin/httpd.sh 中的args。