VM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。
VM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;
空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小。
说明:如果-Xmx 不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM,不是Throwable的,无法用try...catch捕捉。
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
XX:MaxPermSize设置过小会导致java.lang.OutOfMemoryError: PermGen space 就是内存益出。
JVM最多可占用(堆内存)+ (永久区,非堆内存).
如果占满了,就算服务器还有剩余的内存,jvm也不能使用,照样会报"Out of memory"的错误。
分享到:
相关推荐
1. **环境变量设置**:通过设置`CATALINA_OPTS`环境变量,可以在系统级别全局地调整Tomcat中JVM的内存参数。 2. **编辑catalina.bat**:在Tomcat的bin目录下,直接修改catalina.bat文件,替换或添加`-Xmx`, `-Xms`,...
- **mapreduce.map.java.opts** 和 **mapreduce.reduce.java.opts**:控制Java虚拟机(JVM)的堆内存大小。 - **dfs.blocksize**:定义HDFS中的块大小,默认为128MB或256MB。对于大文件,增大块大小可以减少元数据...
《配置好的Tomcat 7.0服务器:搭建与优化指南》 Tomcat 7.0是Apache软件基金会的Jakarta项目中的一个核心组件,它是一个开源的、免费的Web应用服务器,广泛应用于Java Servlet和JavaServer Pages(JSP)的部署。在...
本文将分享Tomcat配置的十大技巧,这些技巧源于《Tomcat权威指南》。 首先,我们来看配置系统管理(Admin Web Application)。Tomcat提供了类似于商业J2EE服务器的强大管理界面,它包括对Context、数据源、用户和组...
4. **环境变量**:某些环境变量可以影响Spring Boot应用的行为,例如`SPRING_APPLICATION_JSON`可以用来传递配置属性,`JAVA_OPTS`可以设置JVM参数。 5. **启动参数**:在Spring Boot中,我们可以通过命令行参数、...
总结,本手册提供了详细的Maven 3安装和配置指南,包括介质下载、环境变量设置、配置文件修改等,以帮助用户顺利搭建开发环境。通过遵循这些步骤,开发者可以高效地利用Maven进行项目管理,实现自动化构建,从而提高...
- 官方文档:Apache Tomcat官网提供了详细的配置指南和最佳实践。 - Java内存管理:理解Java内存模型和垃圾回收机制是解决这类问题的关键。 - JVM调优:学习如何根据应用特性优化JVM参数。 通过以上分析和解决...
1. **性能优化**:通过调整JVM参数、数据库索引和缓存策略提升JIRA性能。 2. **集成扩展**:利用API或Webhooks与其他系统(如Git、Confluence)集成,增强JIRA的功能。 3. **故障排查**:诊断和解决JIRA的运行问题,...
- **配置hadoop-env.sh**:在此文件中设置Java的路径,以及Hadoop的一些环境变量,如`JAVA_HOME`和`HADOOP_OPTS`(用于设置JVM参数)。 - **配置core-site.xml**:核心配置文件,主要设定Hadoop的基本属性,如命名...
例如,如果jbPM4需要的内存超过了默认的JVM堆大小,你可能需要修改`bin/catalina.sh`(或`catalina.bat`,取决于你的操作系统)文件,增加`JAVA_OPTS`环境变量,如`JAVA_OPTS="-Xms256m -Xmx1024m"`。 最后,启动...
以下是一个详细的步骤指南,涵盖了从系统准备到Tomcat优化的整个过程。 首先,我们来了解一下什么是Tomcat。Tomcat是一款开源的Java Servlet容器,实现了Java EE的Web部分,特别是Servlet和JSP规范。它由Apache软件...
1. 调整JVM参数:通过设置JAVA_OPTS环境变量,增加堆内存、调整垃圾回收策略等。 2. 配置连接器:在server.xml中修改Connector元素,设置最大线程数、超时时间等。 3. 修改默认端口:避免与其他服务冲突,可以更改...
以下是一份详细的步骤指南,涵盖了从安装JDK到配置Tomcat,以及设置Tomcat开机自动运行的过程。 首先,我们需要在Linux操作系统(本例中是Ubuntu 9及以上版本)上安装JDK。这通常包括以下步骤: 1. 创建一个新的...
设置`JAVA_OPTS`环境变量,例如添加JVM内存设置:`-Xms256m -Xmx512m`。 - 如果你选择的是Windows服务器,还需要配置PATH环境变量,指向Java的安装路径。 5. **上传Spring Boot可执行jar**: - 使用`mvn package`...
根据应用需求,调整JVM内存设置、线程池大小和其他配置参数以优化性能。 通过以上步骤,你已经在Linux环境中成功安装了JBoss 5.1和JDK 1.6。理解这些步骤并熟练操作将有助于你在Linux系统上构建和管理Java应用程序...
**标题:“Tomcat的安装与配置指南”** 在IT领域,Apache Tomcat是一个广泛应用的开源软件,它作为Java Servlet和JavaServer Pages(JSP)的Web应用服务器,扮演着核心角色。本指南将详述如何下载、安装以及配置...
2. **JAVA_OPTS**: 配置 JVM 参数,如堆内存大小(-Xms, -Xmx)和其他性能优化选项。 3. **SERVER_PORT**: 控制台应用监听的端口号,避免与其他服务冲突。 4. **ROCKETMQ_HOME**: 指向 RocketMQ 的安装目录。 5. **...
这包括设置环境变量,如`JAVA_OPTS`来调整JVM参数,以及`OPENFIRE_HOME`指向Openfire的安装目录。另外,还要确保Eclipse能够正确部署和运行修改后的代码。 6. **版本控制与持续集成** 为了保持代码版本管理和团队...
### Linux + Tomcat + MySQL + Solr 调优指南 #### 一、Linux系统调优 ##### TCP连接优化 为了提升Linux系统在网络层面的性能,可以对TCP连接进行优化,尤其是在处理大量并发请求时。以下是一些常用的TCP配置项:...