Resin是一款优秀的Servlet容器,而且Resin曾经被誉为最快的Servlet容器,现在是否是最快的Servlet容器已经无从考证,但作为Java界轻量级Servlet容器,Resin绝对是其中的佼佼者。如果说Tomcat是Sun JCP规范的实践探索者,那么Resin就是将Sun JCP规范的最优实现者之一。Resin向来就是以稳定高效而著称的。
本文主要内容:
(1)安装JDK和resin
(2)安装resin为系统服务
(3)resin管理员控制台
(4)优化JVM参数和并发连接数
(5)resin其他方面的一些优化
一、安装resin
1、安装JDK
# chmod a+x jdk-6u18-linux-i586-rpm.bin
# ./jdk-6u7-linux-i586-rpm.bin
# ln -s /usr/java/jdk1.6.0_18 /usr/local/java
设置环境变量
# vi /etc/profile
末尾增加如下内容
JAVA_HOME=/usr/local/java
CLASSPATH=/usr/local/java/lib/dt.jar:/usr/local/java/lib/tools.jar
PATH=/usr/local/java/bin
export PATH JAVA_HOME CLASSPATH
# source /etc/profile
# java ?version
查看java版本,如果是1.6的,就是说明安装成功了。
2、安装resin
# tar -zxvf resin-4.0.7.tar.gz
# cd resin-4.0.7
# ./configure --prefix=/usr/local/www/resin --with-java-home=/usr/local/java
# make
# make install
添加执行用户resin
# groupadd resin
# useradd -g resin -s /sbin/nologin -M resin
# chown -R tomcat.tomcat /usr/local/www/resin
# vi /usr/local/www/resin/conf/resin.xml
修改如下两行内容:
resinresin启动resin
# /usr/local/www/resin/bin/resin.sh start
用即可访问到resin的默认页面
二、添加resin到系统服务
将make install生成的$RESIN_HOME/init.d/resin复制到/etc/init.d/resin
# cp init.d/resin /etc/init.d/resin
# chmod a+x /etc/init.d/resin
# vi /etc/init.d/resin
添加如下两行
# chkconfig: 345 85 15
# description: Resin is a Java Web server.
把type log_daemon_msg 1> /dev/null
修改为type echo 1> /dev/null
修改
case "$1" in
start)
.....
stop)
.....
中的log_daemon_msg和log_end_msg为echo
然后就可以用service resin start|stop来启动和停止resin了
三、resin管理员控制台
注:修改resin配置文件之前要先停止resin
使用 打开resin的默认页面
点击Administration is available here处的here
创建一个管理员
# cd /usr/local/www/resin/conf/
# service resin stop
# mv admin-users.xml.generated admin-users.xml
# service resin start
然后就可以使用刚才创建的管理员登陆resin管理员控制台了
四、resin优化
1、优化JVM参数
修改resin.conf文件,在
节点下增加配置JVM参数的子节点。 -Xmx和-Xms的值需要根据服务器内存的大小调整,对于多数应用来说,-Xmx配置成1024M,完全能满足使用要求。通常将-Xms与-Xmx选项的值设置为相同,-Xmn的值为-Xmx的1/4。
-Xms1024m
-Xmx1024m
-Xmn256m
-XXermSize=128m
-XX:MaxPermSize=256m
-Dcom.sun.management.jmxremote
2、调整图片Cache图片文件的时间
3、调整线程池的最大线程数
1024
4、日志输出
如果不配置stdout-log,那么resin会把System.out输出的信息,自动输出到${resinHome}/log/jvm-default.log文件中,且这个文件不会按天存储,随着时间推移,这个文件会越来越大,最后影响系统效率。
5、resin-server TIME_WAIT 过多的处理
thread-max指定了最大连接数,socket-timeout是socket超时时间
keepalive-max指定了长连接的数量,这是可以重复使用的连接,netstat -an时系统可以看到响应数量的ESTABLISHED状态
设定keepalive-max和把keepalive-timeout调小可以减少TIME_WAIT的数量。
在节点下增加配置
10000
30s
512
60s
6、调整检查程序更新时间间隔的配置
Resin 会在一个指定的周期内,检查一下web-app目录下的classes、jsp、jar以及配置文件是否更新,并且根据检查的情况,确定是否重新装载这些文件。对于生产系统来说,不会经常更新文件,时间间隔应该加长,提高系统的效率。文本框中配置的时间间隔为20分钟。
1200s