Tomcat的性能优化及部署时的参数调整

来源:互联网 发布:彩票编程 编辑:程序博客网 时间:2024/05/17 06:06

Tomcat +igrp 性能优化及部署时参数调整

通过前段时间的压力测试及负载疲劳测试,现对系统部署时归纳的经验及注意事项做如下总结:

1jdk 可以使用1.41.5版本,都没有问题,推荐使用1.5

2tomcat jvm建议调整到1024M 即在tomcat/bin/catalina.bat文件头部添加

set JAVA_OPTS=-Xms1024m -Xmx1024m

默认tomcat 最大为64M

IGRP200并发用户的情况下基本上需要300M以上的jvm支持,所以必须调整,否则并发或负载时都会有问题。

3)调整tomcatserver.xml 其中的参数配置,例

<Connector port="8080" maxHttpHeaderSize="8192"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000"

disableUploadTimeout="true" URIEncoding="GBK" />

将其中的maxThreads="150" 修改为maxThreads="1500" ,即可以最大承载1500个并发事务。一个用户基本上请求一次服务需要二个线程进行支持(一个是request,一个是response)。这样IGRP就可以承载最高750个用户的完全并发。maxThreads默认tomcat配置为200个。

4)不要遗漏URIEncoding="GBK",能使页面url传递中文参数时保证正确。

5)如果使用了dipper2的链接池,调整igrpglobal-config.xml 将数据库链接的max值修改成500,(需要将oracle配置里的processor值相应改大(最好修改为1000以上),否则无效),即igrp并发时链接池可以承载500个数据库链接,这样配置基本上可以保证200个用户同时并发时能从数据库链接池里得到数据库链接。

6)如果使用tomcat自带的dbcp数据库链接池, tomcat5.0配置如下

先修改server.xml,增加如下内容,在 <GlobalNamingResources>标签里增加

<Resource name="CarmotDS" type="javax.sql.DataSource"/>

<ResourceParams name="CarmotDS">

<parameter>

<name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

<parameter>

<name>url</name>

<value>jdbc:oracle:thin:@192.168.1.12:1521:igrp</value>

</parameter>

<parameter>

<name>password</name>

<value>carmot</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>500</value>

</parameter>

<parameter>

<name>maxWait</name>

<value>9000</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>oracle.jdbc.driver.OracleDriver</value>

</parameter>

<parameter>

<name>username</name>

<value>carmot_ystest</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>20</value>

</parameter>

</ResourceParams>

maxActive 是最大激活连接数,这里取值为500,表示同时最多有500个数据库连接。maxIdle是最大的空闲连接数,这里取值为20,表示即使没有数据库连接时依然可以保持20空闲的连接,而不被清除,随时处于待命状态。MaxWait是最大等待秒钟数,这里取值-1,表示无限等待,直到超时为止,也可取值 9000,表示9秒后超时。

修改conf/web.xml,增加如下内容

<resource-ref>

    <description>DB Connection</description>

    <res-ref-name>CarmotDS</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

  </resource-ref>

然后修改 conf/Catalina/localhost/ROOT.xml,context标签里增加如下内容

<ResourceLink global="CarmotDS" name="CarmotDS" type="javax.sql.DataSource"/>

Tomcat 5.5以上版本可以直接修改conf/Catalina/localhost/ROOT.xml,context标签里增加如下内容

<Resource name=" CarmotDS " auth="Container" type="javax.sql.DataSource"

maxActive="500" maxIdle="20" maxWait="9000"

driverClassName="oracle.jdbc.driver.OracleDriver"

username="carmot_ystest" password="carmot"

url="jdbc:oracle:thin:@192.168.1.12:1521:igrp"

defaultAutoCommit="true" removeAbandoned="true"

removeAbandonedTimeout="60" logAbandoned="true"/>

removeAbandonedTimeout=60,表示60秒没有使用连接会自己回收资源.

修改global-config.xml

<datasource>java:comp/env/CarmotDS</datasource>

 

7Tomcat管理,必须安装admin(可以到http://tomcat.apache.org/download-55.cgi 下载Administration Web Application模块)或manager模块

Tomcat5.5版本还需先修改conf/ tomcat-users.xml 文件

增加如下内容

<role rolename="manager"/>

<role rolename="admin"/>

<user username="admin" password="admin" roles="admin,manager"/>

配置链接池和管理tomcat用户等可以使用admin模块

http://localhost:8080/admin/index.jsp

察看tomcat状态或部署应用可以使用manager模块 (内存,线程等监控)

http://localhost:8080/manager/status

 

8)日志

<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="access_log." suffix=".log" pattern="combined" fileDateFormat="yyyy-MM-dd" resolveHosts="false"/>

原创粉丝点击