关于tomcat调配的两个问题
来源:互联网 发布:windows电脑怎么截屏 编辑:程序博客网 时间:2024/04/28 12:31
1。JVM虚拟内存紧张的问题
使用java虚拟机的软件一般都会为jvm开辟一定数量的内存。Tomcat猫默认开辟的内存数量为64MB,这对一般的应用应该足够了,但是在实际的应用中,如果用户的请求数量比较大,而且大量的数据保存在内存中,比如用户有请求一个非常大的数据表,内存远远不够用,就会造成客户端请求变慢甚至得不到响应。这时我们需要增大JVM内存,假设服务器的内存配置为2048MB,则在Tomcat的启动批处理命令中添加如下代码:
java -Xms528m -Xmx1024MB
这样在启动Tomcat时会为其开辟582M的内存,当请求超过528MB时,系统会再为它分配内存至1024MB。
2。数据库垃圾连接回收
通常连接数据库代码如下,依次创建连接、声明、记录集:
Connection conn=DriverManager.getConnection(url,username,password);
Statement stm=conn.createStatement();
ResultSet rs=stm.executeQuery(sql);
而关闭的顺序和方式如下:
rs.close();
stm.close();
conn.close();
但是在实际的应用当中,通常出现某一对象未关闭的情况,原因可能是显示的没有关闭,也可能是隐式的没有关闭,如ResultSet对象的反复时候可能会造成隐式的未关闭。这时候可以查看数据库表v$open_cursor,可以看到没有关掉游标的SQL语句操作。由于java类不自动回收数据库连接,所以会造成游标占满,这时就等于数据库死掉了为了防止这种情况,要在finalize函数里添加如下代码以保关闭数据库连接万无一失:
protected void finalize()
{
try{
if(getConn()!=null&&!getConn().isClosed())
{
rs.close();
stm.close();
conn.close();
}
}catch(SQLException e){}
}
3.Tomcate性能调配
对于几千个用户(比如5000用户)的服务站点来说,各自的调配参数需要相互配合,这主要格局连接吃的数量来调配的,当然连接池的数量高也要求你的服务器有足够的性能。
比如,数据库连接池数量为500,则Tomcat配置如下:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8000" minProcessors="5" maxProcessors="1000"
enableLookups="true" redirectPort="8443"
acceptCount="1000" debug="0" connectionTimeout="20000"
useURIValidationHack="false" disableUploadTimeout="true" />
上面所示的配置表示可以同时接受2000个用户的请求,超时为20s。
(摘选自课本)
- 关于tomcat调配的两个问题
- 关于装两个Tomcat的问题
- 关于tomcat的两个额外jar包中的问题
- 关于同时启动两个tomcat服务器的问题的整理(转)
- 关于RICHEDIT的两个问题
- 关于输入法的两个问题
- 两个关于音频的问题
- 关于MSDE 的两个问题
- 关于CHECKBOX的两个问题
- 关于Cactus的两个问题
- 关于RICHEDIT的两个问题
- 关于js的两个问题
- 关于hibernate的两个问题
- 两个关于Struts2的问题
- 两个关于字符串的问题
- 关于阶乘的两个问题
- 关于PopupWindow的两个问题
- 关于PopupWindow的两个问题
- 2006.7.30 科南·剧场版
- 下载网页中的图片
- 如何在上传图片之前预览图片?
- Visual C++ MFC 简明教程
- 论倚天屠龙记中继承人问题
- 关于tomcat调配的两个问题
- 宁波归来
- CSDN BLOG惊现bug???
- nutch中插件是如何调用的?
- 刚刚看电视听到的几句话(虽不是至理名言,但可引人深思)
- 刷新aspx页面的六种方法(downmoon)
- ASP.NET四种页面导航方式的比较与选择
- ASP.NET 2.0中用Gridview控件操作数据
- 一段关于从HTML文件找出资源地址的小程序(不断更新)