gpt4 book ai didi

oracle - 如何查看分配给 Oracle JVM 的内存

转载 作者:行者123 更新时间:2023-12-02 05:37:33 24 4
gpt4 key购买 nike

我试图在 Oracle JVM 中执行一些 java 代码,但出现 java.lang.OutOfMemoryError。

所以我想为 Oracle JVM 分配更多内存。我们应该怎么做?

提前致谢。

最佳答案

您似乎超出了 OJVM 的堆大小。

首先,您需要找出您现在总共有多少可用堆大小:查看您的初始化参数 JAVA_POOL_SIZE。如果它是 0,那么您正在使用自动内存管理(10g 或 11g)并且堆大小由 Oracle 服务器“自动”确定。那么可以以sga_target(10g)或者memory_target(11g)作为上限。

每个 session 的最大堆大小受参数 java_max_sessionspace_size 限制(值 0 表示默认为 4GB)。

有了这两个值,取较小的一个并检查您的代码引起的内存需求/堆大小是否应该适合这个内存量。

  • 如果是:您的 Java 代码中存在内存泄漏。
  • 如果不是:增加java_pool_sizesga_target/memory_targetjava_max_sessionspace_size

参见 http://docs.oracle.com/cd/B28359_01/java.111/b31225/chnine.htm#BABGFDAE (Java 内存使用情况)和 http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams099.htm#REFRN10074 + http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams100.htm#REFRN10075 (参数)获取详细文档。

关于您在主题中的问题“如何查看分配给 Oracle JVM 的内存”:

select * from v$sgastat where pool = 'java pool';

关于oracle - 如何查看分配给 Oracle JVM 的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11450635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com