相关疑难解决方法(0)

启动JVM时,Xms和Xmx参数是什么?

请解释JVM中的使用XmsXmx参数.它们的默认值是什么?

java parameters jvm memory-management

911
推荐指数
5
解决办法
172万
查看次数

Maven构建中的"java.lang.OutOfMemoryError:PermGen space"

我在构建Maven项目时遇到了这个错误,我增加了MAVEN_OPTS,但是我发现了一些类似的帖子,但是他们引用了其他的东西.我该如何解决?

The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError: PermGen space
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at org.codehaus.plexus.compiler.javac.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:56)
        at com.sun.tools.javac.comp.Annotate.<init>(Annotate.java:52)
        at com.sun.tools.javac.comp.Annotate.instance(Annotate.java:36)
        at com.sun.tools.javac.jvm.ClassReader.<init>(ClassReader.java:215)
        at com.sun.tools.javac.jvm.ClassReader.instance(ClassReader.java:168)
        at com.sun.tools.javac.main.JavaCompiler.<init>(JavaCompiler.java:293)
        at com.sun.tools.javac.main.JavaCompiler.instance(JavaCompiler.java:72)
        at com.sun.tools.javac.main.Main.compile(Main.java:340)
        at com.sun.tools.javac.main.Main.compile(Main.java:279)
        at com.sun.tools.javac.main.Main.compile(Main.java:270)
        at com.sun.tools.javac.Main.compile(Main.java:87)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(JavacCompiler.java:420)
        at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler.java:141)
        at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:493)
        at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) …
Run Code Online (Sandbox Code Playgroud)

java out-of-memory permgen maven

183
推荐指数
3
解决办法
21万
查看次数

当多个java程序在同一台机器上运行时

每个Java应用程序都将在特定的Java虚拟机实例中运行.我真的对以下方面感到困惑,谷歌搜索让我更加困惑.不同网站上的不同文章.

  1. 如果我有一个用java编写的Web服务,它将需要一个JVM实例来运行.那么JVM可以成为一个守护进程吗?

  2. 如果是,当我们运行任何其他Java应用程序时,它将使用此JVM实例或创建一个新实例?

  3. 任何机器中可用的主存储器都是不变的.当我们同时启动n个java进程而不提供任何初始堆大小时,堆大小如何在进程之间分配?

  4. 是否有任何进程可以管理n个JVM实例,还是由操作系统本身管理?

  5. 在GC期间发生停止世界时,其他JVM实例(我假设的不同线程)是否受到影响?

java jvm

80
推荐指数
2
解决办法
4万
查看次数

Java 8中的默认Xmxsize

oracle文档中我发现:

-Xmxsize指定内存分配池的最大大小(以字节为单位),以字节为单位...默认值是在运行时根据系统配置选择的.

这是什么系统配置是什么意思?

java memory

70
推荐指数
5
解决办法
12万
查看次数

Java获得可用内存

有没有什么好方法可以在运行时将剩余内存提供给JVM?这种情况的用例是让Web服务在接近其内存限制时优雅地失败,拒绝新连接时出现错误消息"太多人使用它,稍后再试",而不是突然死于OutOfMemory错误.

注意,这与预先计算/估计每个对象的成本无关.原则上,我可以估计我的对象占用了多少内存,并根据该估计拒绝新连接,但这似乎有点hacky/fragile.

java memory performance operating-system web-services

65
推荐指数
5
解决办法
7万
查看次数

使用大量内存的Java应用程序.使用-Xmx?

我有一个在16G的机器上使用大约15G的Java应用程序.我不知道是否应该设置最大堆大小.

如果设置将jvm吃掉所有ram达到极限然后开始垃圾收集并停止一切,而它通过15G的堆对象搅拌?

如果没有,jvm会因为没有使用机器上所有可用的ram而损害性能.

我的具体vm是:Java HotSpot(TM)64位服务器VM(版本1.6.0_03-b05,混合模式).

谢谢

java performance jvm memory-management

22
推荐指数
2
解决办法
4万
查看次数

为什么空Java应用程序会消耗内存?

可能重复:
为什么空Java程序消耗内存?

为什么绝对空的Java应用程序会不断消耗内存?该应用程序:

public class Dummy {
    public static void main(String[] args) throws IOException {
        System.in.read();
    }
}
Run Code Online (Sandbox Code Playgroud)

甚至:

public class Dummy {
    public static void main(String[] args) throws InterruptedException {
        synchronized (Thread.currentThread()) {
            Thread.currentThread().wait();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

堆状态:

空Java应用程序堆状态

更新:IOException修复.

java memory

14
推荐指数
0
解决办法
170
查看次数

Kafka Connect耗尽堆空间

启动Kafka Connect(connect-standalone)后,我的任务在开始后立即失败:

java.lang.OutOfMemoryError: Java heap space
    at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57)
    at java.nio.ByteBuffer.allocate(ByteBuffer.java:335)
    at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:93)
    at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:71)
    at org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:154)
    at org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:135)
    at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:343)
    at org.apache.kafka.common.network.Selector.poll(Selector.java:291)
    at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:260)
    at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:232)
    at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:180)
    at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:193)
    at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.poll(ConsumerCoordinator.java:248)
    at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:1013)
    at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:979)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.pollConsumer(WorkerSinkTask.java:316)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:222)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:170)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:142)
    at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:140)
    at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:175)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

在一些Kafka文档中提到了堆空间,告诉你使用"默认"进行尝试,只有在出现问题时才修改它,但是没有指令来修改堆空间.

java heap jvm apache-kafka apache-kafka-connect

9
推荐指数
3
解决办法
2万
查看次数

Spring Boot消耗太多的RAM

我在春季启动中创建了一些服务,我有11个胖jar,并将它们部署在docker容器中,我的怀疑是每个jar都消耗了1到1.5 GB的RAM,而没有任何使用,我通过运行以下命令检查RAM:

docker stats containername
Run Code Online (Sandbox Code Playgroud)

起初我以为是Java容器,所以我尝试更改为使用alpine的容器,但没有任何变化,所以我认为唯一的问题是我的jar。有没有办法更改jar正在使用的RAM?还是这种行为是正常的,因为每个jar都有一个嵌入式的tomcat?或者将一些罐子放在一起作为战争来部署,并在一组“罐子”中仅使用一个tomcat更好?有人可以分享他/她的经验吗?,

提前致谢。

docker spring-boot

7
推荐指数
2
解决办法
7768
查看次数

什么是OutOfMemoryError以及如何调试和修复它

我的Java程序扔了一个OutOfMemoryError.如何调试并修复此问题?


Java的许多新手都在努力应对OutOfMemoryError.这是尝试创建一个规范问题,该问题将回答有关问题的最常见问题OutOfMemoryError.我正在创建这个新问题,而不是调整之前关于a的众多问题之一,OutOfMemoryError因为这些问题及其答案与一个人的特定问题紧密相关.

java exception out-of-memory

5
推荐指数
2
解决办法
2321
查看次数