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 ***”);
%>
具体都是什么意思,相信你运行了之后就会明白的:)
分享到:
相关推荐
首先,Tomcat自带了一个名为`Manager`的应用,它允许管理员监控服务器的状态,包括JVM内存的使用情况。要启用这个功能,我们需要在Tomcat的配置文件`conf/tomcat-users.xml`中设置相应的角色和用户。在上述给出的XML...
- **JVM工具**:使用JDK自带的JConsole、VisualVM或JProfiler等工具可以实时监控Tomcat的内存使用情况,找出可疑的对象和类。 - **heap dump**:通过JVM命令`jmap -dump`生成堆转储文件,然后使用分析工具查看内存...
通过对JVM的内存管理和Tomcat连接器的参数进行细致调整,可以有效提升Tomcat服务器的性能。然而,每项配置的调整都需要结合具体的应用场景和系统资源状况,以达到最佳的优化效果。实践中,持续监控服务器性能指标,...
关于JVM内存工作原理,Java内存模型分为堆内存和栈内存,其中堆内存用于存储对象实例,栈内存用于存储方法调用。Java的内存管理分为新生代、老年代和永久代(Java 8之后为元空间)。新生代主要负责存放新创建的对象...
### 设置JVM内存的方法 #### 一、引言 在Java应用程序开发与部署的过程中,合理的JVM内存配置至关重要。不合适的内存配置不仅可能导致应用程序性能下降,还可能引发一系列的内存溢出错误,如`OutOfMemoryError`。...
在IT行业中,Tomcat作为一款广泛应用...总的来说,解决Tomcat内存溢出的关键在于理解和配置JVM内存管理,以及持续监控和优化应用程序。通过上述步骤,我们可以提升Tomcat的服务稳定性,降低因内存溢出导致的系统故障。
- **定期监控内存使用情况**:通过监控工具如Windows任务管理器或Linux的top命令等,定期检查Eclipse和Tomcat的内存使用情况,以便及时发现并解决问题。 - **优化代码结构**:除了调整JVM参数外,优化代码结构也是...
### Eclipse Tomcat 启动时出现内存溢出问题解析及解决方法 #### 一、问题背景与概述 在使用Eclipse集成开发环境部署并运行基于Tomcat的应用程序时,经常会出现“java.lang.OutOfMemoryError: Java heap space”这...
另一个可能的解决方案是使用第三方监控工具,例如Nagios、Zabbix或Prometheus等,这些工具能提供更全面的系统监控,包括CPU使用率、内存占用、网络状态以及Tomcat特定的指标,如线程池状态和HTTP请求响应时间。...
"jvm.zip_jvm_knownobc_tomcat"这个压缩包包含了与优化Tomcat中的JVM设置相关的资料,主要关注如何有效管理和释放内存。 1. **JVM参数设置**: JVM的参数设置对于控制Tomcat内存分配至关重要。例如,`-Xms`和`-Xmx...
5. **硬件升级**:如果以上方法都无法解决问题,可能需要考虑提升服务器的硬件配置,如增加CPU核心数、提高CPU频率等。 通过以上分析和解决策略,我们可以有效地排查和处理Tomcat占用CPU高的问题,保证应用的稳定性...
这个WAR文件可能包含了服务器监控界面,通过它可以查看Tomcat的内存使用情况、线程状态、请求统计、JVM堆栈信息等关键指标。 【标签】中提到的“监控tomcat”指的是对Tomcat服务器各项指标的实时跟踪,包括CPU使用...
【Tomcat优化与监控】是IT领域中针对服务器性能提升和状态监控的重要环节,尤其是在运行Java应用程序时,Tomcat作为广泛使用的应用服务器,其优化能够显著提升系统性能和稳定性。以下将详细介绍标题和描述中涉及的...
1. **应用占用过多内存**:如果部署的应用程序消耗了大量内存资源,超过了JVM分配给它的内存空间。 2. **服务器资源有限**:服务器本身的物理内存限制了可以分配给JVM的内存大小。 3. **配置不当**:Tomcat默认的...
为了更好地进行内存优化,首先需要了解Tomcat及其所基于的JVM(Java虚拟机)的内存模型。JVM内存主要分为以下几个部分: 1. **堆内存**:用于存储对象实例、数组等数据。堆内存又可以细分为年轻代和老年代。 - **...
此外,监控Tomcat的运行状态,如CPU使用率、内存消耗、请求响应时间等,能帮助我们及时发现问题并进行针对性优化。 文档"深入Java虚拟机(原书第2版).pdf"将为你提供更深入的理论基础,"jvm优化.docx"涵盖了具体的...
- 使用工具如VisualVM、JProfiler等监控Tomcat的内存使用情况,以便及时发现问题。 - 分析日志文件,特别是GC日志,来确定是否出现了频繁的垃圾回收事件。 5. **升级至最新版本**: - 如果可能的话,考虑将...
本教程将详细解释Tomcat服务器中与JVM相关的几个关键工具,包括它们的功能、使用方法及示例。 1. **jps (Java Virtual Machine Process Status tool)**: jps命令用于列出运行在指定主机上的Java虚拟机进程。通过...