如果我通过:java -Xmx12m OOM执行下面的类,它为什么会失败,并显示java.lang.OutOfMemoryError Java heap space消息。但是如果它和java -Xmx13m OOM一起工作的话。
class OOM {
static final int SIZE=2*1024*1024;
public static void main(String[] a) {
int[] i = new int[SIZE];
}
}
我以为int是4个字节,所以2*1024*1024*4=8,388,608bytes。还是低于12,对吧?那么,为什么-
我正在做GKE。
有时我在我的GKE集群操作中看到以下消息(我假设它报告的是kubectl get events的副本)
Memory cgroup out of memory: Kill process 670233 (java) score 1728 or sacrifice child
Killed process 670233 (java) total-vm:16535056kB, anon-rss:10437020kB, file-rss:20112kB, shmem-rss:0kB
具体的pod有以下资源
limits:
cpu: 409
我们在1.9.6-gke.1上使用Google Kubernetes引擎,并且有一个带有几个节点池的集群,我们为这些节点池启用了自动伸缩,因为其中的节点包含附加的GPU (p100s)。
有时我们通过Kubernetes Pod在由于触发的自动伸缩事件而启动的节点上通宵运行作业,许多小时后返回时发现pod已经消失,因为pod已经终止,处于某种未知状态,并且由于10分钟内没有其他pod调度到该节点,因此运行该pod的节点已被耗尽并移除。
也就是说,一旦节点消失,pod就会从Kubernetes日志和控制平面ie.running的角度消失,比如kubectl get pods和kubectl de
我正在尝试使用API获取分配给pod的实际内存和内存总量。虽然我可以使用metrics服务器api获取实际的内存消耗。如何使用指标服务器API获取分配给pod的总内存?
我正在开发一个仪表板,其中我需要展示豆荚内存和cpu.The用户界面图形有输入,实际和总金额。我可以获取kubectl get --raw /apis/metrics.k8s.io/v1beta1/namespaces/default/pods/命令使用的实际内存,但是如何获取pod的总内存?
在创建这么多强引用时会出现OOM错误,因为GC不会收集强引用,但如果没有额外的内存,GC将收集弱引用。所以我的问题是:在设置-Xmx2M时,我创建了一个循环来创建弱引用
Set<SoftReference<Integer>> sa = new HashSet<~>();
for (int i = 0; i < size; i++) {
SoftReference<Integer> ref = new SoftReference<Integer>(i);
sa.add(ref);
}
它仍然发生在OOM中,为什
我无法理解为什么-Xmx in MAVEN_OPTS不适用于openjdk:8-jdk-alpine中的Maven。
这是:
$ docker run --rm openjdk:8-jdk-alpine sh -c 'apk add maven && MAVEN_OPTS=-Xmx2g\ -Xms2g mvn --version'
生产:
Error occurred during initialization of VM
Initial heap size set to a larger value than the maximum heap size
我使用