首页 > 编程语言 >java常见问题

java常见问题

时间:2023-05-07 19:00:10浏览次数:42  
标签:常见问题 java space XX 内存 JVM 溢出

java.lang.OutOfMemoryError: Java heap space

 

解决问题之前先来分析一下为什么会出现内存溢出的问题.

有两种可能性:

一种是应用有问题, 本该回收的内存没有进行回收导致的内存溢出, 这种情况就需要修改代码了.

第二种情况则是服务器资源不够或JVM参数设置过小导致的内存溢出,这种情况需要更换服务器或修改启动参数

我们可以使用对应的工具或命令来定位到问题, 然后分析是哪种情况, 最后再解决问题.

 

 

 

https://www.cnblogs.com/liuboren/p/15859576.html

 

内存溢出java.lang.OutOfMemoryErrory后面一般会跟上内存溢出的区域 PermGen space(方法区),

heap space(堆内存)

如果是PermGen space方法区内存溢出,可尝试加大MaxPermSize

如果是heap space 堆内存溢出,可尝试修改Xmx

-Xms <size>  设置JVM初始化堆内存大小

-Xmx <size> 设置JVM最大的堆内存大小

 

-Xms1024M -Xmx1024M

 

-XX:+HeapDumpOnOutOfMemoryError 设置
1、配置方法

在JAVA_OPTIONS变量中增加

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目录}。
例如:export JAVA_OPTS="-Xms2048M -Xmx2048M -Xmn682M -XX:MaxPermSize=96M"

2、参数说明

(1)-XX:+HeapDumpOnOutOfMemoryError参数表示当JVM发生OOM时,自动生成DUMP文件。

(2)-XX:HeapDumpPath=${目录}参数表示生成DUMP文件的路径,也可以指定文件名称,例如:-XX:HeapDumpPath=${目录}/java_heapdump.hprof。如果不指定文件名,默认为:java_<pid>_<date>_<time>_heapDump.hprof。
————————————————

 

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=/crasks/my-heap-dump.hprof


原文链接:https://blog.csdn.net/u011488009/article/details/105700505

 

这里配置Java堆内存最大为 1024MB。可以使用 g/G 表示 GB, m/M 代表 MB, k/K 表示 KB.

  https://www.cnblogs.com/demo-tt/articles/14006565.html  

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

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

 

 

标签:常见问题,java,space,XX,内存,JVM,溢出
From: https://www.cnblogs.com/youxin/p/17379821.html

相关文章

  • Java Bean介绍与配置
    (一)JavaBean介绍1.javaBean的介绍在Java中,有很多class的定义都符合这样的规范:若干private实例字段;通过public方法来读写实例字段。例如:publicclassPerson{privateStringname;privateintage;publicStringgetName(){returnthis.name;}p......
  • Java 进阶 - Apache BeanUtils
    介绍BeanUtils是ApacheCommons的组件,它们源自JavaAPI并提供Java语言的组件体系结构。JavaBeanUtils设计模式使用实用程序类,这些实用程序类有助于获取和设置Java类的属性值,以便检索和定义Bean属性。常用方法//根据指定的Map填充指定JavaBeans属性publicst......
  • Java多态性
    Java多态性面向对象三大特征:封装性,继承性,多态性.extends继承或者implements实现,是多态的前提一个对象拥有多种形态这就是:对象的多态性多态的实现代码中体现多态性:父类引用指向子类对象格式父类名称对象名=new子类名称();或者接口名称对象名=new实现类......
  • Java javadoc 标准和注释规范
    (一)基本定义Javadoc是Sun公司提供的一个技术,从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档(二)使用方式javadoc源文件名.javajavadoc-d文档存放目录源文件名.java通过IDEA生成Javadoc:Tools->GenerateJavaDoc(三)基本标签标签说明@......
  • javaDoc生成文档
    1.https://docs.oracle.com/javase/8/docs/api/(在线API帮助文档) 2.参数 ......
  • 字符串的反转---Java
    定义一个方法,实现字符串的反转键盘输入一个字符串,调用方法后,输出结果 例如: 键盘输入:abc 输出结果:cbapackagestring.practice;/**定义一个方法,实现字符串的反转*键盘输入一个字符串,调用方法后,输出结果*例如:*键盘输入:abc*输出结果:cba*/importjava.util.......
  • flume java.lang.OutOfMemoryError: GC overhead limit exceeded
    http://java-boy.iteye.com/blog/463454解决办法:<1>ps-aux|grepflume查看刚才启动的flume进程,发现如下信息/usr/jdk/bin/java-Xmx20m-Dflume.root.logger=INFO-cpconf<2>于是看一个flume-ng的python脚本,发现JAVA_OPTS="-Xmx20m"问题就是出在这里了,然后我把flume-ng脚本......
  • JVM系列---【使用jmx_agent监控java程序】
    使用jmx_agent监控java程序1.下载jmx_prometheus_javaagent.jar从https://github.com/prometheus/jmx_exporter/releases下载最新版本的jmx_prometheus_javaagent.jar2.创建一个名为jmx_exporter_config.yml的文件用于配置jmx_prometheus_javaagent.jar的监控参数。该文件应......
  • Java IO流详解
    文章和代码已经归档至【Github仓库:https://github.com/timerring/java-tutorial】或者公众号【AIShareLab】回复java也可获取。文件文件,对我们并不陌生,文件是保存数据的地方。文件在程序中是以流的形式来操作的。流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数......
  • Java练手项目,后续1
    阅读本文需注意,作者是辣鸡新手,有些注释和解释可能不太对,欢迎大佬们前来指正,洗耳恭听。关于str.char(0);查看下面的链接学习(其他人的)https://blog.csdn.net/ammmd/article/details/3014251关于异常处理这部分:(菜鸟教程中的)https://www.runoob.com/java/java-exceptions.html关......