修改TOMCAT的JVM虚拟机内存大小几种方式

Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。

经常会出现Java.lang.OutOfMemoryError: Java heap space 即JVM Heap溢出的错误。

对此有以下几种方法可以选用:

第一种方法:修改catalina.bat/catalina.sh文件

1.linux 下调整tomcat的内存设置修改bin目录下catalina.sh文件在cygwin=false之上添加以下语句JAVA_OPTS="-Xms1024m -Xmx4096m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m"其中-xms为jvm初始化堆的大小,-xmx为jvm堆的最大值2. window 下调整tomcat的内存设置修改bin目录下catalina.bat文件@echo off下追加set JAVA_OPTS= -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M3.eclipse下修改外置tomcat的内存设置open launch configuration=>arguments=>vm arguments追加-Xms1024M -Xmx4096M -XX:PermSize=512m -XX:MaxPermSize=2048m

第二种方法:环境变量中设置

变量名:JAVA_OPTS
变量值:-Xms512m-Xmx512m
(服务器内存大小为32G)
变量值:-Xms512M -Xmx2048M -XX:PermSize=512M -XX:MaxPermSize=2048M  -XX:ReservedCodeCacheSize=512m

前两种方法针对的是bin目录下有catalina.bat的情况(比如直接解压的Tomcat等)并且通过startup.bat/startup.sh启动才生效,
但是有些安装版的Tomcat下没有catalina.bat,这个时候可以采用如下方法,当然这个方法也是最通用的方法:

第三种方法:通过D:\apache-tomcat-8.0.52-windows-x64\apache-tomcat-8.0.52\bin\tomcat8w.exe,配置内存大小

1》打开D:\apache-tomcat-8.0.52-windows-x64\apache-tomcat-8.0.52\bin\tomcat8w.exe,
2》点击Java选项卡,然后将会发现其中有这么两项:Initialmemorypool和Maximummemorypool.Initialmemorypool这个就是初始化设置的内存的大小。
3》Maximummemorypool这个是最大内存的大小设置完了就按确定然后再重启TOMCAT你就会发现tomcat中jvm可用的内存改变了。

另外需要考虑的是Java提供的垃圾回收机制。虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整。如果堆的大小很大,那么完全垃圾收集就会很慢,但是频度会降低。如果你把堆的大小和内存的需要一致,完全收集就很快,但是会更加频繁。调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求。在基准测试的时候,为保证最好的性能,要把堆的大小设大,保证垃圾收集不在整个基准测试的过程中出现。

如果系统花费很多的时间收集垃圾,请减小堆大小。一次完全的垃圾收集应该不超过3-5秒。如果垃圾收集成为瓶颈,那么需要指定代的大小,检查垃圾收集的详细输出,研究垃圾收集参数对性能的影响。一般说来,你应该使用物理内存的80%作为堆大小。当增加处理器时,记得增加内存,因为分配可以并行进行,而垃圾收集不是并行的。

修改TOMCAT的JVM虚拟机内存大小几种方式相关推荐

  1. 调整JVM虚拟机内存大小

    查看全文 http://www.taodudu.cc/news/show-3730693.html 相关文章: [JVM虚拟机]JVM的启动参数设置 JVM 虚拟机详解内部原理(小白必看!) JVM虚 ...

  2. JVM(一)JVM虚拟机内存结构 和 JAVA内存模型(JMM)

    本文转自:浅析java内存模型--JMM(Java Memory Model) - 路易小七 - 博客园,尊重作者,转载请注明出处~ JVM虚拟机内存结构 和 JAVA内存模型 是两个不同的概念 JV ...

  3. jvm虚拟机内存结构_JVM体系结构101:了解您的虚拟机

    jvm虚拟机内存结构 Java虚拟机(JVM)架构和Java字节码101的初学者速成班 Java应用程序无处不在,它们在我们的手机,平板电脑和计算机上. 在许多编程语言中,这意味着多次编译代码以使其在 ...

  4. java中的vm自变量_java中JVM虚拟机内存模型详细说明

    java中JVM虚拟机内存模型详细说明 JVM的内部结构如下图: 一个优秀Java程序员,必须了解Java内存模型.GC工作原理,以及如何优化GC的性能.与GC进行有限的交互,有一些应用程序对性能要求 ...

  5. Android虚拟机是以哪种方式实现的,底层逻辑又是怎样的?

    前言 我进入 Androird 行业也有一段时间,目前负责项目开发方面的工作,难免会用到虚拟机实现代码运行,最近我也一直在思考,虚拟机是以哪种方式实现的,底层逻辑又是怎样的?于是在网上查阅了相关的资料 ...

  6. brk16_Linux进程分配内存的两种方式--brk() 和mmap()

    如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看. majflt代表major fault,中文名叫大错误,minflt代表minor faul ...

  7. 远程控制virtual box虚拟机系统的三种方式

    远程控制virtual box虚拟机系统的三种方式[阅读时间:5分钟] 1.使用现有的远程控制软件 2.使用SSH连接 3.使用远程桌面控制虚拟机系统 对于把虚拟机安装在寝室笔记本的人来说,能够远程控 ...

  8. 内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)

    如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看. majflt代表major fault,中文名叫大错误,minflt代表minor faul ...

  9. jvm虚拟机内存使用配置及优化

    作为运维人员,对部署的程序合理分配内存空间,显得十分重要,合理的分配内存,可以使程序高效运行,同时减轻了对资源的占用和浪费,针对天津出现的cpu占用率过高的问题(内存占用率过高导致),简单的了解了JV ...

最新文章

  1. css 定位及遮罩层小技巧
  2. 机器学习(16)ROC曲线与AUC指标(癌症分类的模型检测--AUC指标)
  3. Docker的使用(二:Docker客户端常用指令练习)
  4. C 实现strcpy函数
  5. C语言——四字节对齐(4对齐后是4, 5对齐后是8)
  6. 钉钉产品介绍_钉钉上线安全教育新功能家校联动护航学生暑期安全
  7. 挖掘经典:几乎被人遗忘的HTML七种用法 (转)
  8. linux-mysql了解
  9. windows 10
  10. SQL Server里面如何检查没有释放的游标
  11. linux ubuntu php7.0 安装 curl
  12. golang命令行贪吃蛇
  13. 异形与铁血战士关系 时间线
  14. erlang中的ets和dets
  15. 不老嘞 - 2004和老婆游香山
  16. 量化金融投资及其python应用_量化投资:用Python实现金融数据的获取与整理
  17. 解决 WIDOWS 2003 SERVER 玩不了3D游戏
  18. SIFT/SURF算法的作用
  19. POJ4084: 拓扑排序
  20. PPT在线预览 转换为图片实现方案 Apache POI 实现时踩坑:含嵌入文件ppt转换报错 ArrayStoreException

热门文章

  1. mcq 队列_人工智能逻辑才能问答(MCQ)
  2. 设置html按钮点击事件无效果,css怎么设置按钮不能点击?
  3. oracle底层执行顺序,select语句结构与执行顺序-Oracle
  4. python将txt转为字符串_python做第一只小爬虫
  5. 能上网的Linux系统,那一款linux能上网
  6. centos7.4php测试,CentOS7.4 通过yum安装php7.0
  7. c#中.clear()作用_清单 .Clear()方法以及C#中的示例
  8. 计算机网络考试试题库-期末考试题库含答案
  9. 容器技术之kubectl常用命令
  10. flex java oracle_Flex使用Blazeds与Java交互及自定义对象转换详解-DATAGRID读取ORACLE数据...