jvm 调整tomcat的堆内存和常驻内存catalina.sh

4.2 性能优化

tomcat性能取决于你的内存大小

上策:优化代码

中策:jvm优化机制  垃圾回收机制 把不需要的内存回收   优化jvm--优化垃圾回收策略

优化catalina.sh配置文件。在catalina.sh配置文件中添加以下代码:

#tomcat分配1G内存模板 JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m"

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms800m -Xmx800m -XX:NewSize=400m -XX:MaxNewSize=400m -XX:PermSize=400m -XX:MaxPermSize=400m"

时间: 2024-10-12 04:22:14

jvm 调整tomcat的堆内存和常驻内存catalina.sh的相关文章

一步步优化JVM四:决定Java堆的大小以及内存占用

原文:http://blog.csdn.net/zhoutao198712/article/details/7783070 到目前为止,还没有做明确的优化工作.只是做了初始化选择工作,比如说:JVM部署模型.JVM运行环境.收集哪些垃圾回收器的信息以及需要遵守垃圾回收原则.这一步将介绍如何评估应用需要的内存大小以及Java堆大小.首先需要判断出应用存活的数据的大小,存活数据的大小是决定配置应用需要的Java堆大小的重要条件,也能够决定是否需要重新审视一下应用的内存需求或者修改应用程序以满足内存需

Jvm(30),理解升级----Java中堆内存和栈内存详解

java中内存分配策略及堆和栈的比较 1 内存分配策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式 的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构 (比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求. 栈式存储分配也可称为动态存储分配,是由一个类似于堆栈的运行栈来实现的.和静态存储分

JVM的堆内存和栈内存中存储的数值或类型的区别在哪里

基本类型变量的值和内容是一致的引用类型变量的值在堆内存,赋值的内容是一个地址,这个地址也在栈内存,指向堆内存引用类型变量的值是内存地址,内存地址在栈内存,指向堆:内容是实例,在堆内存 引用类型变量时,栈内存存储的是指向堆的内存地址,真正数据在堆内存中,栈内存中存的是指向堆的地址,占用8个字节 类里面方法外的是成员方法跟属性(property),如果属性没有static修饰就是在堆,有即为静态属性(类属性)就不在,即在永久区,所有对象公用一份:eg:int i = 4,这个4 在栈内存 ,i是一个

【转】jvm 内存模型及内存调优

一,JVM内存模型概括 还有一个寄存器,线程运行于其上面 1.程序计数器 记录线程的执行位置,线程私有内存,唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域 2.线程栈(VM stack) 栈的默认大小是1M -Xss2m 这样设置成2M 异常 :Fatal: Stack size too small 异常的引起一般是线程数目太多 3.本地方法栈(native stack) 即为一些Native方法分配的stack 异常:java.lang.OutOfMemo

JVM及Tomcat优化

Tomcat   性能调优 Tomcat启动行参数(JVM)优化 1.文件定位:catalina.bat 2.参数添加 set JAVA_OPTS = %JAVA_OPTS% -server -Xms1028M -Xmx1028M -Xmn385M -Xss128k -XX:PermSize=256M 参数解释 -server : 位置必须为第一个参数 默认情况下,tomcat以java -client模式运行,toncat以server模式运行会有更大,更高的并发处理能力:更快的JVM垃圾回收

【转】深入JVM系列(一)之内存模型与内存分配

http://lovnet.iteye.com/blog/1825324 一.JVM内存区域划分 大多数 JVM 将内存区域划分为 Method Area(Non-Heap),Heap,Program Counter Register, Java Method Stack,Native Method Stack 和Direct Memomry(注意 Directory Memory 并不属于 JVM 管理的内存区域).前三者一般译为:方法区.堆.程序计数器.但不同的资料和书籍上对于后三者的中文译

深入理解jvm之内存区域与内存溢出

文章目录 1. Java内存区域与内存溢出异常 1.1. 运行时数据区域 1.1.1. 程序计数器 1.1.2. java虚拟机栈 1.1.3. 本地方法栈 1.1.4. Java堆(Java Heap) 1.1.5. 方法区 1.1.6. 运行时常量池 1.1.7. 直接内存 1.2. HotSpot虚拟机 1.2.1. 对象的创建 1.2.2. 对象的访问定位 1.3. OOM异常的解决思路 1.4. 参考 Java内存区域与内存溢出异常 运行时数据区域 程序计数器 当前线程所执行的字节码的

java堆外内存 (直接内存)

java堆外内存 (直接内存 非托管内存) 堆外内存的好处是: 可以扩展至更大的内存空间.比如超过1TB甚至比主存还大的空间. 理论上能减少GC暂停时间. 可以在进程间共享,减少JVM间的对象复制,使得JVM的分割部署更容易实现. 它的持久化存储可以支持快速重启,同时还能够在测试环境中重现生产数据. 例如NIO为了高效,提供了ByteBuffer ps:进程间通信的方法除了管道,信号,套接字等常规方法,共享内存,读写文件也可以实现进程间的通信. http://www.importnew.com/

java堆内存和栈内存的处理

前段时间学习二叉树在处理删除操作的时候遇到一个头疼的问题:删除节点的时候明明已经置null了可树上该节点依旧存在,还必须执行node.father.left = null;才可以删除node节点,寻找了一下原因发现还是因为对java内存管理理解不够深入. 代码如下: @Test public void testNode() { Node node1 = new Node("node1"); Node node2 = new Node("node2"); node2.