Tomcat对jvm内存

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 ***</BR>”);
out.println(”Free Momery:”+lRuntime.freeMemory()+”</BR>”);
out.println(”Max Momery:”+lRuntime.maxMemory()+”</BR>”);
out.println(”Total Momery:”+lRuntime.totalMemory()+”</BR>”);
out.println(”Available Processors : “+lRuntime.availableProcessors()+”</BR>”);
out.println(”***END MEMERY STATISTICS ***”);
%>

具体都是什么意思,相信你运行了之后就会明白的:)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tomcat服务器通常使用JVM (Java Virtual Machine) 来运行,内存配置对于它的性能至关重要。主要有以下几个方面的设置: 1. **JVM内存**(Heap Memory):这是Java应用的主要内存区域,用于存放对象实例。通过`-Xms`和`-Xmx`命令行参数设置初始堆大小(最小值)和最大堆大小(最大值)。例如:`-Xms512m -Xmx1024m`,分别表示初始512MB和最大1GB。 2. **非堆内存**(Non-heap Memory):包括常量池、元数据区和线程上下文类加载器等。这部分内存不会自动调整,需要手动配置,如`-XX:PermSize`(永久代大小)和`-XX:MaxPermSize`。 3. **年轻代**(Young Generation):包括Eden空间、Survivor Space和Tenured Generation,主要用于对象的创建和回收。可以设置为固定大小或分段,如`-XX:NewRatio`用于eden/survivor的比例。 4. **老年代**(Old Generation):长期存活的对象会被移入这里,设置`-XX:MetaspaceSize`限制元数据区域大小,避免溢出。 5. **持久化缓存**(如果启用了持久连接):Tomcat会分配额外的内存用于存储连接信息,这可以通过`org.apache.tomcat.util.http.fileupload.FileUploadSupport.MAX_FILE_SIZE`控制。 6. **JVM内存溢出监控**:可以启用JVM的堆转储日志(`-XX:+HeapDumpOnOutOfMemoryError`),以便在发生内存溢出时生成堆转储文件供分析。 为了保证稳定性和性能,建议根据实际应用需求和资源情况,通过监控工具(如VisualVM、JConsole等)动态调整这些配置。记得定期检查日志以诊断潜在的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值