Linux下修改JVM内存大小:

要添加在tomcat 的bin 下catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下# vi TOMCAT_HOME/bin/catalina.sh(默认文件内容)export JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m"export JAVA_OPTS="-server -Xms512m -Xmx1024m -Xss256k -XX:PermSize=128m -XX:MaxNewSize=256m -XX:MaxPermSize=256m"

以下是自己设置的另外增加一个setenv.sh文件来设置tomcat内存,给文件加上执行权限#vi /opt/app/tomcat6/bin/setenv.sh

export JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:PermSize=128m  -XX:MaxPermSize=256m -XX:SurvivorRatio=14 -XX:+UseParallelOldGC"

或直接修改tomcat的配置文件

#vi TOMCAT_HOME/bin/catalina.sh

JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:PermSize=128m  -XX:MaxPermSize=256m -XX:SurvivorRatio=14 -XX:+UseParallelOldGC"

JAVA_OPTS="-Xms512m -Xmx2048m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=512m"

在linux下tomcat出现验证码不显示,加-Djava.awt.headless=true参数:#vi /tomcat6/bin/catalina.sh

JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:PermSize=512M -XX:MaxPermSize=1024m -Djava.awt.headless=true"

jvm参数说明:

-server                一定要作为第一个参数,启用JDK的server版本,在多个CPU时性能佳

-Xms                    启动应用时,JVM 堆空间的初始大小值(java Heap初始大小), 默认是物理内存的1/64。

-Xmx                    应用运行中,JVM 堆空间的极限值( java heap最大值)。为了不消耗扩大JVM 堆控件分配的开销,将此参数和-Xms 这个两个值设为相等,考虑到需要开线程,建议将此值设置为物理内存的80%,不可超过物理内存。

-Xmn                    此参数硬性规定堆空间的新生代空间大小,推荐设为堆空间大小的1/4(java heap最小值,一般设置为Xmx的3、4分之一)。

-XX:PermSize            应用服务器启动时,永久存储区的初始内存大(设定内存的永久保存区初始大小,缺省值为64M)。

-XX:MaxPermSize        应用运行中,永久存储区的极限值。为了不消耗扩大JVM 永久存储区分配的开销,将此参数和-XX:PermSize这个两个值设为相等。堆空间相关参数参数名参数说明(设定内存的永久保存区最大大小,缺省值为64M)。

-XX:SurvivorRatio=2    生还者池的大小,默认是2。如果垃圾回收变成了瓶颈,您可以尝试定制生成池设置

-XX:NewSize            新生成的池的初始大小。 缺省值为2M。

-XX:MaxNewSize          新生成的池的最大大小。 缺省值为32M。

+XX:AggressiveHeap      让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。

-Xss                    每个线程的Stack大小

-verbose:gc            现实垃圾收集信息

-Xloggc:gc.log          指定垃圾收集日志文件

-XX:+UseParNewGC        缩短minor收集的时间

-XX:+UseConcMarkSweepGC 缩短major收集的时间

-XX:userParNewGC        可用来设置并行收集(多CPU)

-XX:ParallelGCThreads  可用来增加并行度(多CPU)

-XX:UseParallelGC      设置后可以使用并行清除收集器(多CPU)

-XX:+UseParallelOldGC:配置年老代垃圾收集方式为并行收集。JDK6.0支持对年老代并行收集。

上面所列的JVM 参数关系到系统的性能,而其中-XX:PermSize,-XX:MaxPermSize,-Xms,-Xmx 和-Xmn 这5 个参数更是直接关系到系统的性能,系统是否会出现内存溢出。

-XX:PermSize 和-XX:MaxPermSize 分别设置应用服务器启动时,永久存储区的初始大小和极限大小;在生成环境中强烈推荐将这个两个值设置为相同的值,以避免分配永久存储区的开销,具体的值可取系统“疲劳测试”获取到的永久存储区的极限值;如果不进行设置-XX:MaxPermSize 默认值为64M,一般来说系统的类定义文件大小都会超过这个默认值。

-Xms 和-Xmx 分别是服务器启动时,堆空间的初始大小和极限值。-Xms的默认值是物理内存的1/64 但小于1G,-Xmx 的默认值是物理内存的1/4 但小于1G.在生产环境中这些默认值是肯定不能满足我们的需要的。也就是你的服务器有8g 的内存,不对JVM 参数进行设置优化,应用服务器启动时还是按默认值来分配和约束JVM 对内存资源的使用,不会充分的利用所有的内存资源。

tomcat中java.lang.OutOfMemoryError: PermGen space异常处理

解决方法:

”永久存储区溢出PermGen space的全称是Permanent Generation space“  或“(java.lang.OutOfMemoryError:Java Permanent Space)”,都是指内存的永久保存区域,乃是永久存储区设置太小,不能满足系统需要的大小,此时只需要调整-XX:PermSize 和-XX:MaxPermSize 这两个参数即可。

“PermGen space”这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误, 这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

“JVM 堆空间溢出(java.lang.OutOfMemoryError: Java heap space)”错误是JVM 堆空间不足,此时只需要调整-Xms 和-Xmx 这两个参数即可。

windows下修改JVM内存大小:

情况一:解压版本的Tomcat, 要通过startup.bat启动tomcat才能加载配置

要添加在tomcat 的bin 下catalina.bat来添加内存在

rem ----- Execute The Requested Command ---------------------------------------下

增加下面命令:set JAVA_OPTS=-server -Xms512m -Xmx600m -XX:PermSize=128m -XX:MaxNewSize=256m -XX:MaxPermSize=256m -XX:SurvivorRatio=14 -XX:+UseParalledlOldGC

set JAVA_OPTS=-server -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

set JAVA_OPTS=-Xms1024m -Xmx1024m -XX:PermSize=1024M -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m

set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m

set JAVA_OPTS="%JAVA_OPTS% -server -Xms800m -Xmx3072m -XX:PermSize=512m -XX:MaxNewSize=256m -XX:MaxPermSize=1024m"

另翻注(详细解释):

常见JVM参数配置汇总

堆设置

-Xms:初始堆大小

-Xmx:最大堆大小

-XX:NewSize=n:设置年轻代大小

-XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4

-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:

Survivor=3:2,一个Survivor区占整个年轻代的1/5

-XX:MaxPermSize=n:设置持久代大小

收集器设置

-XX:+UseSerialGC:设置串行收集器

-XX:+UseParallelGC:设置并行收集器

-XX:+UseParalledlOldGC:设置并行年老代收集器

-XX:+UseConcMarkSweepGC:设置并发收集器

垃圾回收统计信息

-XX:+PrintGC

-XX:+PrintGCDetails

-XX:+PrintGCTimeStamps

-Xloggc:filename

并行收集器设置

-XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数。并行收集线程数。

-XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间

-XX:GCTimeRatio=n:设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)

并发收集器设置

-XX:+CMSIncrementalMode:设置为增量模式。适用于单CPU情况。

-XX:ParallelGCThreads=n:设置并发收集器年轻代收集方式为并行收集时,使用的CPU数。并行收集线程数。

linux增量安装tomcat_linux与windows下tomcat的java内存设置相关推荐

  1. linux与windows下tomcat的java内存设置

    Linux下修改JVM内存大小: 要添加在tomcat 的bin 下catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下# vi TOMCAT_HOME/bin ...

  2. linux增量安装tomcat_Linux服务器上的tomcat中部署web项目

    首先了解一下下面几个概念,讲得不太准确: 1.JVM JVM是class以及jar(实际上就是很多个class压缩在一起)的运行环境,特征就是java和javaw命令,通过这两个命令,你可以执行cla ...

  3. wsl2设置挂载_Windows下的Linux子系统安装,WSL 2下配置docker

    Windows下的Linux子系统安装,WSL 2下配置docker 前提条件: 安装WSL 2需要Windows 10版本是Build 18917或更高,首先先确认系统版本已升级. 在"启 ...

  4. Windows下tomcat进程监控批处理程序

    在Windows下tomcat进程监控批处理程序脚本如下: @echo off ::tomcat安装目录 set _tomcatDir=E:\myFiles\apache-tomcat-8.5.31 ...

  5. linux配置tomcat内存配置文件,Linux与Windows下tomcat内存设置

    Linux下修改JVM内存大小: 要添加在tomcat 的bin 下catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下# vi TOMCAT_HOME/bin ...

  6. windows下Tomcat安装配置

    目录 安装tomcat 配置windows服务 目录结构组成 修改默认端口 新增用户 部署Web应用 配置数据源 tomcat抛java.lang.OutOfMemoryError解决 本篇以Tomc ...

  7. linux怎么在win上安装mysql_CentOS下安装MySQL及Windows下使用Navicat for MySQL连接

    安装 查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 查看有没有安装包: yum list mysql* 安装mysql客户端: y ...

  8. 手把手教学,带你在Linux、OS X、Windows下Docker的安装

    一.前言 目前,Docker已经支持非常多的Linux平台,包括Ubuntu和RHEL(Red Hat Enterprise Linux,Red Hat企业版Linux).除此之外,Docker还支持 ...

  9. 30天精通Python(数据分析篇)——第1天:环境搭建之 Linux/Windows 下安装 Anaconda 和 Windows 下安装 DataSpell

    目录 一.Linux 下安装 Anaconda 二.Jupyter Notebook 配置 三.Windows 下安装 DataSpell 3.1 DataSpell 介绍 3.2 DataSpell ...

最新文章

  1. 运用RUP 4+1视图方法进行软件架构设计
  2. FoodMart数据仓库mysql表及数据初始化
  3. bootstrap学习(二)页面
  4. html5基础知识点字体属性
  5. 中兴通讯 基于定位的技术和市场分析
  6. LeetCode 1979. 找出数组的最大公约数
  7. 信息学奥赛一本通 2063:【例1.4】牛吃牧草
  8. python3语法糖_python的语法糖
  9. jsp中jstl标签的类似 if - else 语句 的语法
  10. 求解两条空间直线的交点(解析解+数值解)
  11. 小白都能看懂的java虚拟机内存区域划分
  12. 【微信小程序】设置页面背景色的方式
  13. Hdu 4503 湫湫系列故事——植树节
  14. typora 公式对齐_Typora极简教程
  15. 震惊,用过微粒贷的人没资格贷款买房!
  16. Java基础:IO 流中的 flush
  17. linux 驱动 device,driver ,bus 关系
  18. 火车头采集翻页内容_火车头采集:内容替换支持[参数],标签
  19. 阿里云服务器与腾讯云服务器优势比较哪个好?
  20. Residual Reinforcement Learning for Robot Control

热门文章

  1. 统一建模语言UML轻松入门(3)――静态建模:类和对象
  2. python输入input数组_Python学习——实现简单的交互raw_input的使用
  3. java web课程题目_JavaWeb开发技术试题题目及答案,课程2020最新期末考试题库,章节测验答案...
  4. python 抓包 上传 文件_Python接口测试文件上传实例解析
  5. mysql存储过程报错_MySQL存储过程错误No data - zero rows fetched, selected, or processed
  6. mysql中的运算符的执行顺序_【MySQL】执行顺序
  7. mysql中的编码问题_mysql存储乱码之编码问题
  8. Kettle安装好MYSQL驱动后报用户名密码错误
  9. Arrays.sort()方法
  10. 【计算机组成原理】乘法阵列器