Chinaunix首页 | 论坛 | 博客
  • 博客访问: 949894
  • 博文数量: 264
  • 博客积分: 10107
  • 博客等级: 上将
  • 技术积分: 2455
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-09 16:34
文章分类

全部博文(264)

文章存档

2012年(1)

2011年(11)

2010年(128)

2009年(82)

2008年(42)

我的朋友

分类: 系统运维

2010-12-16 17:48:52

  tomcat本身是一个很好的服务器容器,免费,功能强大,身后被很多强大的公司和组织默默的支持着,造就了一个可以和weblogic等收费容器抗衡的地位,但是tomcat本身还是存在一些缺陷。
在tomcat设计之初,因为考虑到客户的服务器性能不同,防止虚拟内存不足,所以tomcat默认设置jvm允许使用内存数为最小64M,最大128M,但是在一些项目占用资源比较庞大,或者高并发量的项目中,狠容易造成内存不足而tomcat没有任何征兆就自动停止。
最好的办法是修改tomcat对jvm内存使用的限制。
方法有两个:
1,编辑%CATALINA_HOME%\bin下面的catalina.bat文件,在最上面第一行前面写上
set JAVA_OPTS=-Xms512m -Xmx1024m
其中-Xms表示jvm最小内存数,-Xmx表示最大内存数
比如我这里都设置成最小512,最大1024
当然,这个最小最大并不是只能使用1024的意思,其实这个设置是对系统来设置的,因为这个jvm占用内存数实际上是针对虚拟内存来说,这个设置表示,无 论系统怎么占用虚拟内存,都要保证最小512M的虚拟内存共给jvm使用,当然,就算我jvm占用再大,也不会超过1024,来威胁系统的内存使用
2,在环境变量里面添加如下两个值
加上TOMCAT_OPTS, CATALINA_OPTS两个属性,
如 SET CATALINA_OPTS= -Xms512m -Xmx1024m;
意义同上
但是如何查看jvm内存使用多少呢?最简单的办法就是打开任务管理器–>进程–>查看–>选择列,选上虚拟内存数->确 定,就会看见虚拟内存数了,这时,你会看见虚拟内存会有512~1024M的空间被占用,那么就是被你设定好的值所占用了,jvm的内存使用,就会在这个 被占用的范围内使用

另外一个办法就是写一个小脚本,命名为ram.jsp
代码为

<%
Runtime lRuntime = Runtime.getRuntime();
out.println(”***BEGIN MEMERY STATISTICS ***
”);
out.println(”Free Momery:”+lRuntime.freeMemory()+”
”);
out.println(”Max Momery:”+lRuntime.maxMemory()+”
”);
out.println(”Total Momery:”+lRuntime.totalMemory()+”
”);
out.println(”Available Processors : “+lRuntime.availableProcessors()+”
”);
out.println(”***END MEMERY STATISTICS ***”);
%>

具体都是什么意思,相信你运行了之后就会明白的:)

 


Solaris 9 上的Tomcat参数修改:

catalina.sh中,最前面增加一行:

JAVA_OPTS="-server -Xms3000m -Xmx3000m -XX:PermSize=300m -XX:MaxPermSize=300m -Dcom.sun.management.jmxremote"

阅读(865) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-17 14:59:01

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com