免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10527 | 回复: 13
打印 上一主题 下一主题

[Web] [性能] tomcat如何释放内存? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-31 12:05 |只看该作者 |正序浏览
我在linux服务器上架设了一个tomcat,有访问数据库的功能,但每次访问数据库时系统不释放内存,老在那占着,久而久之,系统就耗尽内存而亡。不知道有没有什么办法挽救?

[ 本帖最后由 HonestQiao 于 2006-6-2 11:19 编辑 ]

论坛徽章:
0
14 [报告]
发表于 2006-06-08 10:35 |只看该作者
楼上的,这个我早就设置了,多谢您的指导,可是最大连接数就到1000,再往上就不行了

论坛徽章:
0
13 [报告]
发表于 2006-06-07 15:28 |只看该作者

回复 12楼 kaka_sun 的帖子

增加全局变量export CATALINA_OPTS=-Xms40m\ -Xmx200m
这两个值要根据系统内存大小而定,tomcat启动时会加载CATALINA_OPTS的。

论坛徽章:
0
12 [报告]
发表于 2006-06-07 11:03 |只看该作者
楼上的分析我已经明白了,可是我不明白的是怎么设置?

论坛徽章:
0
11 [报告]
发表于 2006-06-06 10:23 |只看该作者
问题解决了,根据我的测试得到以下规律:

堆的大小限制了java使用内存的大小,java使用的内存永远<=java堆大小,但是java进程占用的大小实际上包括一些外围内存在内。
一般来说这部分外围内存不会太大,而且到一定大小就不会变了。因此限制堆的大小相当于限制了java的最大占用内存。每次使用的内存大小达到堆大小时,java自身会回收一部分内存继续使用,显示的使用内存仍然是堆大小,因此不必担心java会无限制的占用系统内存。看不懂的看下面公式:

java剩余内存大小:leftMemory
java使用的内存大小:useMemory
java外围内存的大小therMemory
java进程占用内存的大小:allMemory
java堆大小:heapMemory

useMemory <= heapMemory
allMemory = useMemory + otherMemory

论坛徽章:
0
10 [报告]
发表于 2006-06-05 20:44 |只看该作者
原帖由 xiaojao 于 2006-6-5 17:14 发表
我遇到过不少的问题,尤其是与数据库连接,经常会导致TOMCAT或数据库出问题,大部分都是未正常关闭数据库。另外,查看驱动程序是不是不合适。配置是不是有问题。另外,可以给JAVA多分一些内存再观察一下。

你指的“配置是不是有问题”是指什么配置?

论坛徽章:
0
9 [报告]
发表于 2006-06-05 17:14 |只看该作者
我遇到过不少的问题,尤其是与数据库连接,经常会导致TOMCAT或数据库出问题,大部分都是未正常关闭数据库。另外,查看驱动程序是不是不合适。配置是不是有问题。另外,可以给JAVA多分一些内存再观察一下。

论坛徽章:
0
8 [报告]
发表于 2006-06-05 10:11 |只看该作者
我的数据库肯定关掉了,毫无疑问的

论坛徽章:
0
7 [报告]
发表于 2006-06-05 09:23 |只看该作者
牛人们指点一下吧,tomcat如何释放数据库连接池占用的内存?

论坛徽章:
0
6 [报告]
发表于 2006-06-02 12:59 |只看该作者
我也有同样的问题,希望牛人帮忙提供解决这个问题的方法
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP