1、文件位置

打开bin/catalina.bat文件

示例:

JAVA_OPTS="-Xms256m -Xmx512m -Xss256K  -Djava.security.egd=file:/dev/./urandom  -Dspring.profiles.active=test"

1)给出了对内存的配置。

2)以及spring boot 使用spring.profiles.active来分区配置。

项目的部署,开发环境、测试环境、预发布环境、生产环境的环境配置是不同的;比如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据,这时候,我们可以利用profile在不同的环境下配置用不同的配置文件或者不同的配置.

Spring boot允许你通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件,然后通过在application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件,如果没有没有指定任何profile的配置文件的话,spring boot默认会启动application-default.properties。

2、JAVA_OPTS设置

2.1、JAVA_OPTS ,顾名思义,是用来设置JVM相关运行参数的变量。

JVM:JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k"

-server:  一定要作为第一个参数,在多个CPU时性能佳*。

-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些。

-Xmx:java heap最大值,使用的最大内存。

上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。

-XX:PermSize:设定内存的永久保存区域

-XX:MaxPermSize:设定最大内存的永久保存区域

-XX:MaxNewSize:

-Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.

+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。

-Xss:每个线程的Stack大小

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

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

-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一

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

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

提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

2.2、在tomcat中redeploy时出现outofmemory的错误. 可以有以下几个方面的原因:

1) 使用了proxool,因为proxool内部包含了一个老版本的cglib.

2) log4j,最好不用,只用common-logging

3) 老版本的cglib,快点更新到最新版。

4) 更新到最新的hibernate3.2 3

3、实例演示

这里以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理。

一、java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation 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)那么就会产生此错误信息了。

解决方法: 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m

建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。

二、java.lang.OutOfMemoryError: Java heap space Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

解决方法:手动设置Heap size 修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入

下行: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"

三、下面给出1G内存环境下Java jvm 的参数设置 ,作为参考

JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "

JAVA_OPTS设置详解相关推荐

  1. 全球著名音乐抓轨软件EAC 设置详解

    EAC的作者Andre Wiethoff是德国多特蒙德大学计算机专业的一名学生,经常抓取和监听各种WAV文件,所以使用了许多抓音轨的软件,但令他不满意的是,这些软件只有 时基误差的校正,而CDROM在 ...

  2. AWARD BIOS设置详解

    AWARD BIOS设置详解 AWARD公司是世界最大的BIOS生产厂商之一,其产品也被广泛使用.但由于AWARD BIOS里面的信息都是基于英文且需要用户对相关专业知识的理解相对深入,使得普通用户设 ...

  3. Win7 NFS 设置详解 | X-Space

    Win7 NFS 设置详解 | X-Space Win7 NFS 设置详解

  4. Windows权限设置详解

    Windows权限设置详解 随着动网论坛的广泛应用和动网上传漏洞的被发现以及SQL注入式***越来越多的被使用,WEBSHELL让防火墙形同虚设,一台即使打了所有微软补丁.只让80端口对外开放的WEB ...

  5. Windows 7防火墙设置详解(三)

    Windows 7防火墙设置详解(三) 一.如何禁用或启用规则 方法:只需要在需要禁用或启动的规则上,鼠标右键选择启用或禁止规则即可,或点击右侧的操作栏进行规则启用或禁止. 二.入站规则和出站规则 由 ...

  6. ubuntu php设置,关于ubuntu php环境设置详解-PHP问题

    ubuntu php设置办法:起首更新源列表:而后关上"终端窗口",输出饬令"sudo apt-get install php5"来装置php:接着装置设置装备 ...

  7. java环境变量设置详解_JAVA环境变量配置详解(Windows)

    JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解 Windows下JAVA用到的环境变量主要有3个,JAVA_HOME.CLASSPATH.PATH. JAVA_HOME指向的 ...

  8. Win7下的内置FTP组件的设置详解

    Win7下的内置FTP组件的设置详解 在局域网中共享文件,FTP是比较方便的方案之一.Win7内部集成了FTP,只是设置起来颇费一番功夫.着文以记之. 一.安装FTP组件 由于Win7默认没有安装FT ...

  9. 如何用PPT来实现三维3D效果,附参数设置详解

    原文链接: 如何用PPT来实现三维3D效果,附参数设置详解

  10. Stale branches 设置_Mac OS 网络设置教程 wifi设置与宽带设置详解

    虽然所有设备连接无线网络的步骤都相差无几,但是Mac与windows系统还是不相同的,那么,苹果Mac怎么连接无线网络呢?针对此问题,本文就为大家介绍Mac网络的设置教程,有兴趣的朋友们可以了解下. ...

最新文章

  1. 条件选择结构:星期计划(switch)
  2. R语言散点图可视化:自定义标题和标签、拟合回归线、lowess为散点图添加平滑拟合线、修改散点图中点颜色和点符号、分组散点图、添加图例、pairs可视化散点图矩阵、ggplt2可视化、lattice
  3. java邮件发送api文件,JavaMail API 发送一个HTML电子邮件
  4. 成功解决internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'express'
  5. HDU 5691 Sitting in Line 状压dp
  6. centos6架设dhcp服务器提供两个网段的IP地址分配
  7. 怎么撤销定时说说_武夷山币7省线下预约火爆!名字错了怎么办,附预约问题整理...
  8. eureka 之前的服务如何关闭_Eureka 中的幽灵
  9. SQL Server-聚焦移除Bookmark Lookup、RID Lookup、Key Lookup提高SQL查询性能(六)
  10. 数据库接口实验--php实现--
  11. 闹钟流程_自考专升本1月份统考粤康码申报流程
  12. 58java面试题_58到家,java开发实际面试题
  13. EXP-00091: Exporting questionable statistics.问题解决!(转)
  14. ural 1069. Prufer Code
  15. php utc时间_php如何设置utc时区
  16. 虚拟服务器磁盘读写慢,解决VMware Workstation虚拟机运行缓慢问题之修改硬盘参数及其虚拟硬盘的两种模式的说明...
  17. Knockout.js学习笔记----绑定
  18. NR TM测试模式解析
  19. 香港银行开户资料和香港银行开户多少钱和渣打银行开户流程
  20. 基于SNMP的网络拓扑结构自动发现研究

热门文章

  1. python给excel排序_数据处理,Excel的排序功能,使用pandas在Python中轻松完成
  2. 【PS】443种逼真度超高水彩笔刷打包下载
  3. MySQL窗口函数(分组内排序、筛选)
  4. 软件测试运维工程师面试题,运维工程师笔试题目
  5. 不同品牌路由器无线桥接的设置方法
  6. 用letax写毕业论文-- 原创性声明、承诺书、授权书
  7. 机器学习项目实践——K-means聚类实现广告分析
  8. 创建一维数组,存储班级中10位同学的年龄信息,并求出班级同学的平均年龄。找出班级中的最小年龄和最大年龄。(冒泡排序)
  9. 16天记住7000考研单词(784个句子版本) 实际单词4369
  10. 如何批量将 Xls 格式的 Excel 文档转为 Xlsx 格式