问题标签 [java-heap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1578 浏览

java - Java Xmx 和 Docker 容器 RAM 大小之间还有多少余量?

我 100% 了解 JVM 的缺陷以及在 JVM 世界中为了解容器的人体工程学/资源而取得的进步/进步。另外,是的,我知道默认情况下 Java 会尝试在其运行的环境中分配 1/4 可用的 RAM ......

所以我有一些想法和问题。我制定了 50/50 规则。如果我的应用程序需要 1GB 的 Xmx,那么我创建 2GB 的容器,它为 JVM 开销和任何容器/交换的东西提供了另外 1GB 的 RAM(尽管不确定交换在容器中是如何真正工作的)。

所以我在想,如果我的应用程序需要 6GB 的 Xmx,我真的需要创建 12GB 的容器还是可以使用 7GB 或 8GB 的​​容器?当涉及到 RAM 时,我们需要在容器内提供多少空间?

0 投票
2 回答
290 浏览

java - 堆内存超过阈值后的 Java 垃圾收集

每次堆内存超过特定阈值时,是否可以在 java 中调用强制垃圾回收?

0 投票
1 回答
310 浏览

java - 通过虚拟内存与 RAM 可行的内存大小

我正在尝试实例化一个巨大的ArrayList

在eclipse中运行它我得到:

如果我做:

我得到一个不同的错误:

我在 eclipse 的运行配置中使用以下设置启动程序:
-Xmx8G

那么这里的问题是什么?即使我增加-Xmx16G它仍然会给出同样的错误

更新
我有点困惑,RAM的实际大小在这里重要吗?由于分页,进程不能访问无限的虚拟内存吗?

0 投票
1 回答
233 浏览

java - Apache Spark:java.lang.OutOfMemoryError:Java 堆空间问题

当我每 2 次运行相同的 spark 程序时,我就面临这个java.lang.OutOfMemoryError: Java Heap Space问题。

这是一个场景:

当我spark-submit第一次执行并运行 spark 程序时,它给了我正确的输出并且一切都很好。当我再次执行相同的spark-submit操作时,它会引发java.lang.OutOfMemoryError: Java Heap Space异常。

什么时候再次起作用?

如果我在spark-submit通过执行清除 linux 缓存后运行相同的操作 -/proc/sys/vm/drop_caches它再次成功运行一次。

我尝试设置所有可能的 spark 配置,例如 memoryOverhead、drive-memory、executor-memory 等。

知道这里发生了什么吗?这真的是 spark 代码的问题,还是由于某些 linux 机器设置或集群配置方式而发生的?

谢谢。

0 投票
2 回答
71 浏览

java - 当一个方法返回一个 String 时,它是一个字面量还是一个 String 对象?

假设一个方法返回一个字符串

字符串 str = methodCall();

methodCall() 的返回类型是 String。

我们会得到一个字符串字面量,它会在池内存中还是只是一个字符串对象?

0 投票
0 回答
1131 浏览

performance - 在 Kubernetes 容器中生成 Java 堆转储

我在 kubernetes 中运行 Jenkins 控制器。我注意到控制器已经重新启动了很多。

Pod的内存分配如下

只要控制器处于空闲状态,我就看不到任何尖峰发生。但是,当我开始生成作业时,我注意到有尖峰,每个尖峰都会导致 aOOMError并且会发生重新启动

在此处输入图像描述

为了进一步研究这一点,我想生成一个堆转储。所以我要做的是添加以下内容

JAVA_OPTS. 我期待下一次詹金斯控制器点击时OOM,它应该生成一个带有 under/srv/jenkins/但没有的 Heapdump。知道是否有我错过的东西吗?

java_pid.hprof重启后 /srv/jenkins/ 下没有该类型的文件。

全部JAVA_OPTS

0 投票
1 回答
46 浏览

pyspark - 仅检索数据框列时的pyspark java堆空间错误

对于以下指向 hive 表的分区并获取列但没有真正重的简单示例,spark 的惰性求值是否真的执行了任何操作:

我不明白为什么仅仅指向一个蜂巢表会占用 PySpark(版本 2.4.3)的大量内存。向驱动程序和执行程序(驱动程序内存,执行程序内存)添加内存只会使查询永远卡住,而不会输出任何有用的消息。有没有办法在定义数据框时抑制 PySpark 的执行?

0 投票
1 回答
90 浏览

jvm - 在 Anylogic 中管理分配的内存大小

为了增加 Anylogic 的堆大小,我遵循了这里解释的方法,但它只适用于 1.5G 的 ram。我的操作系统是 Windows 10(64 位),JVM 是 1.8.0_281(64 位)。当我手动更改 AnyLogic.ini 文件(例如将 -Xmx 更改为 2048M)并尝试运行 Anylogic 时,我遇到此错误:“无法创建 java 虚拟机”。

如果你能帮助我解决这个问题,我将不胜感激,因为它是必不可少的。

0 投票
0 回答
55 浏览

c# - SonarScanner 执行 java.lang.OutOfMemoryError

我正在尝试在 .Net Core 3.1 应用程序上生成声纳扫描仪报告,但出现此错误。ERROR: SonarScanner 执行过程中出错java.lang.OutOfMemoryError: Java heap spaceThe generated report size is 65.1Mb. 我认为这个错误可能是我的项目中 WSDL 生成的文件的结果。所以,我试图通过 sonarqube.bat 文件中的这个命令排除这些文件

它没有用。如果有人可以在这个问题上提供一些帮助,那就太好了。

我的文件夹结构

我试图排除文件夹 x、文件夹 y、文件夹 z 中的所有内容。这些文件夹具有那些 wsdl 内容,以下是我在分析时遇到的错误。我该如何处理这个问题,请帮助解决这个问题。

在此处输入图像描述

声纳文件内容

0 投票
2 回答
648 浏览

java - Java 堆转储:如何找到占用内存的对象/类 1. io.netty.buffer.ByteBufUtil 2. byte[] 数组

我发现我的一个 spring boot 项目的内存(RAM 消耗)每天都在增加。当我将 jar 文件上传到 AWS 服务器时,它占用了 582 MB 的 RAM(最大分配的 RAM 为 1500 MB),但每天,RAM 增加 50 MB 到 100 MB,5 天后的今天,占用了 835 MB . 目前该项目有 100-150 个用户,并且正常使用 Rest API。

由于 RAM 的增加,应用程序多次出现以下错误(从日志中发现错误):

所以为了解决这个问题,我发现通过使用 JAVA Heap Dump,我可以找到占用内存的对象/类。因此,通过Jmap在命令行中使用,我创建了一个堆转储并将其上传到Heap HeroEclipse Memory Analyzer Tool。在他们两个中,我发现了以下内容:

1.总浪费内存为:64.69MB (73%)(查看下方截图)

在此处输入图像描述

2 . 其中,34.06MB 被Byte [] arrayand占用LinkedHashmap[](查看下面的截图),我在整个项目中从未使用过。我在我的项目中搜索了它,但没有找到。

在此处输入图像描述 3 . 以下 2 个大对象分别占用 32 MB 和 20 MB。

在此处输入图像描述

所以我试图找到这个netty.buffer。在我的项目中,但我没有找到任何与 netty 或缓冲区匹配的东西。

现在我的问题是如何减少这种内存泄漏,或者如何找到确切的内存消耗对象/类/变量,以便减少堆大小。

我知道很少有专家会要求提供源代码或任何类似的东西,但我相信从堆转储中我们可以找到内存泄漏或内存中可用的活动对象。我正在寻找该选项或任何减少此堆转储的东西!

在过去的 3 周里,我一直在研究这个问题。任何帮助,将不胜感激。谢谢!