【问题标题】:JVM stops at 2GB under windows Server 2008 R2windows Server 2008 R2下JVM停在2GB
【发布时间】:2011-02-23 06:28:04
【问题描述】:

我的 java 应用程序有问题。在 windows server 2008 r2 (64bit) 下使用 64bit JVM (1.60.0_20),应用程序在 2GB 分配的内存处挂起,即使更改 JVM 设置以分配更多 (-Xmx5000m) 并等待更多,它也不会超过该标记超过 12 小时。这是在具有 7.5GB 可用内存的 EC2 实例上。

【问题讨论】:

    标签: java jvm windows-server-2008 amazon-ec2 freeze


    【解决方案1】:

    挂起?不抛出“OutOfMemoryError”? 如果您从 2GB 的堆开始(“-Xms2g -Xmx2g”)会发生什么情况,您可以启动应用程序吗?

    我想知道您是否正在耗尽您的实例可用的内存。是小例子吗?由于正在使用的内存量远远超过可用的物理内存,它将由于交换而开始颠簸。也许您需要一个大内存实例。

    【讨论】:

    • 好吧,我还没有尝试过 2G、2G 配置,我确实有一个高内存实例,大约 4G 内存仍然可用。它不会抛出任何类型的异常。它只是坐在那里盯着我的脸,毫无生气,一动不动!它与GC有什么关系吗??
    • 我的理论是应用程序正在积极使用比物理内存更多的内存。这意味着机器不断地将内存页面交换/分页到磁盘,这会减慢速度,以至于看起来卡住了。我不确定如何在 Windows 上验证这一点——这是在任务管理器/性能中吗?承担费用?这也可能是一个红鲱鱼,并且有一些应用程序问题导致死锁。
    • 谢谢您的回复,但结果却是更严重的事情。看起来线程池有问题。我的应用程序。是一个线程应用程序,它会挂起,因为线程池执行程序不会分配新线程。
    猜你喜欢
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多