文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>resin优化

resin优化

时间:2006-12-13  来源:lc0060305

resin 的优化

1. Resin启动时通过bin目录下的wrapper.pl文件进行控制,我们可以修改这个文件来加一些参数,比如要加入Java的-Xms和-Xmx参数

    vi /usr/local/resin-2.1/bin/wrapper.pl
    找到并修改以下这行为:
    $JAVA_ARGS="-Xms512m -Xmx512m";

2. resin 的 X 选项有如下意义

The allocation of memory for the JVM is specified using -X options when starting Resin

(the exact options may depend upon the JVM that you are using, the examples here are for the Sun JVM).

JVM option passed to Resin Meaning
-Xms initial java heap size
-Xmx maximum java heap size
-Xmn the size of the heap for the young generation

Resin startup with heap memory options
unix> bin/httpd.sh -Xmn100M -Xms500M -Xmx500M
win> bin/httpd.exe -Xmn100M -Xms500M -Xmx500M install
win service> bin/httpd.exe -Xmn100M -Xms500M -Xmx500M -install

3. 具体格式

java -Xms<size>
set initial Java heap size. default:Xms32m
java -Xmx<size>
set maximum Java heap size. default:Xmx128m

set it like that:

java -Xms=32m -Xmx=256m
If the problem persist, increase Xmx more than 256 ( 512m for example )

3.1.  当不需要改动程序时,关闭java自动编译会更快些.

    <compiling-loader path="webapps/WEB-INF/classes" />
    加个属性
    batch="false"

3.2  $JAVA_ARGS="-server";

     据说java中的-server参数是让本地化编译更完全.

4. 对于线程的优化经验

     最近发现有人用黑客类工具恶意点击网站,或发送大量垃圾包,具体是什么不清楚,但是很明显是故意的,造成80端口无法正常访问,或访问速度极慢。
用netstat -an >>c:\temp\aaa.txt 命令查看了当时情况,发现某几个ip的连接数量巨大,是不正常的。
     不管是访问量大,还是有黑客骚扰,我想还是试试看把resin优化一下。
     首先要在访问量巨大的时候进行观察。
     先将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服务的情况大大减少,本设置适合于中小型网站。

5.Resin.conf配置参数说明

1、 HTTP服务相关

1) <app-dir>e:\EGovStd</app-dir> 设置wwwroot路径

2) <http port='80'/> 设置HTTP服务端口,如果是内嵌式在其它HTTP SERVER上运行,请删除此行。

2、 session相关

1) <session-timeout>800</session-timeout> session超时时间(单位:分钟)

2) <enable-cookies>true</enable-cookies> 是否使用cookies

3) <file-store>WEB-INF/sessions</file-store> 使用文件方式保存session在WEB-INF/sessions目录下。(注:该参数可避免由于class文件更新后,session会丢失的问题)

3、 jsp和servlet相关配置

1) <srun host='127.0.0.1' port='6802'/> 设置解析jsp的服务端口。(注:如果同一台机器运行不同目录下的resin,应保持该端口不重复)

2) <servlet>

<servlet-name>Settings</servlet-name>

<servlet-class>com.newtouch.common.setting.SettingsServlet</servlet-class>

<init-param configFile='E:\EGovStd\web-inf\conf\init.conf'/> 设置configFile参数的值为E:\EGovStd\web-inf\conf\init.conf

<load-on-startup>-2147483646</load-on-startup>

</servlet>

    在resin启动时自动装载com.newtouch.common.setting.SettingsServlet

3) <servlet>

<servlet-name>watch.WatchQServlet</servlet-name> mapping后的servlet名称

<servlet-class>com.newtouch.egov.watch.WatchQServlet</servlet-class> 实际的servlet名称

</servlet>

<servlet-mapping>

           <servlet-name>watch.WatchQServlet</servlet-name>

           <url-pattern>/servlet/watch.WatchQServlet</url-pattern>

         </servlet-mapping>

4、 数据库缓冲池

(注:关于时间的单位默认为秒,s为秒,m为分钟,h为小时)

<resource-ref>

  <res-ref-name>jdbc/egovstd</res-ref-name> 数据源名称

  <res-type>javax.sql.DataSource</res-type> 数据源类型

  <init-param driver-name="com.microsoft.jdbc.sqlserver.SQLServerDriver"/> JDBC驱动名称

  <init-param url="jdbc:microsoft:sqlserver://localhost:1433;selectmethod=cursor"/> JDBC的连接URL

  <init-param user="sa"/> 连接数据库的用户名称

  <init-param password=""/> 该用户的密码

  <init-param max-connections="50"/> 缓冲池最大连接数

  <init-param max-idle-time="30"/> 数据库连接最大空闲时间

  <init-param max-active-time="5m"/> 数据库连接最大活动时间

  <init-param max-pool-time="10m"/> 数据库连接在数据缓冲池的最大存在时间

  <init-param connection-wait-time="15"/> 数据库连接等待时间
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载