当前位置: 首页 > 知识库问答 >
问题:

为什么我的java进程使用的内存(Linux RES)一直在增加?

阚通
2023-03-14

关系信息:Linux下Java的虚拟内存使用,内存使用太多

共有1个答案

翟泰
2023-03-14

我建议您查看pmap以了解该过程。这将给出本机内存使用的详细情况。你没有那么多控制权的记忆是

  • 线程使用的总堆栈空间。
  • 内存映射文件的大小
  • 共享库的大小。
  • 本机库内存使用情况。例如套接字缓冲区(如果有足够的套接字)

这些的一些组合是利用差异。

 类似资料:
  • 我们面临的问题是,Java进程的驻留内存逐渐增长。我们将Xmx定义为4096 MB,并且XX:MaxPermSize=1536m。活动线程的数量约为1500,定义了256K的Xss。 当应用服务器(JBoss 6.1)启动时,使用的驻留内存约为5.6GB(一直在使用top命令对其进行监视);它逐渐增长(每天约0.3到0.5 Gb),直到增长到约7.4 Gb,这时内核的OOM杀手由于RAM空间不足而

  • 问题内容: 我只是在一本Java书中读到这句话,说Java中的对象驻留在堆上。使用堆是因为它是快速存储数据和快速检索数据的最佳方法吗? 我只有一个关于数据结构初学者的想法。我的意思是为什么不堆叠或其他? 问题答案: 堆栈的问题是您只能删除最近添加的内容。这对于局部变量非常有效,因为它们在您进入和退出函数时会来来去去,但对于生命周期不遵循单个函数的任意数据而言,效果则不太好。内存堆使您可以随意添加和

  • 问题是,那些块是什么?哪个子系统分配这些? 更新:我们不使用JIT和/或JNI本机代码调用。

  • 我在分析运行在docker容器和主机上的Java应用程序的内存消耗时遇到了一个有趣的问题。 Java应用程序是Jetty server 9.4.9上的web应用程序 Java版本:1.8 主机:Mac Docker Images:Jetty:9.4-jre8 docker守护进程是18.03.1-CE版本。 在主机上,我使用Yourkit工具来分析内存消耗。 假设提供了错误的结果,我尝试使用标志限

  • 我们有一个在Solaris 10上运行的java进程,为大约200-300个并发用户提供服务。管理员报告说,随着时间的推移,进程使用的内存显著增加。几天内它就达到2GB,并且从未停止增长。 我们已经转储了堆,并使用Eclipse内存探查器对其进行了分析,但没有看到任何异常。堆的大小非常小。 在添加内存统计日志记录后,我们在应用程序中发现管理员使用的“top”实用程序报告的内存使用量与MemoryM

  • 我的java应用程序工作了大约1天,(我使用不同的库来处理照片,比如ffmpeg、javacv、javacpp),然后我看到我的应用程序使用了9,5GB的RAM。 I set-XMX6G 在VisualVM中,我看到堆空间大小为188M visualVM中的堆空间 编辑: 是的,我的应用程序有时会出现异常Java.lang.outofmemoryerror:Java堆空间