在linux平台上,我的jboss上的java应用程序有128MB的堆,但使用1.6GB的真实RAM。 我如何知道1.4GB的位置?
PID USER PR NI VIRT RES SHR S %cpu %MEM CODE DATA TIME+ COMMAND 1379 root 16 0 9.7g 1.6g 1980 S 0.7 1.3 36 9.7g 0:11.03 java
谢谢,
埃姆雷
OpenCL – 如果GPU内存大于系统RAM,会发生什么情况
mremap和malloc一起工作吗?
在Linux内核中做COW拷贝?
内核模块的内存使用情况
我不确定你怎么知道 但是我的理论是,你的应用程序已经将一个巨大的文件映射为一个MemoryMappedBuffer 。 你问题中的统计数据表明你正在使用9.7千兆字节的地址空间。
我的第一步是检查内存分析器中的进程,如VisualVM或yourkit 。 这可以初步了解您的进程的内存使用情况。
你的意思是“我的应用程序有128MB的堆”,你是用-Xmx 128M启动JBoss吗?
无论如何,堆的大小并不决定你的进程使用的内存量,JVM将为其他事物分配内存,包括每个线程的堆栈。
但在你的情况下,这可能不是解释,因为1.4GB似乎是巨大的。 你在做什么特别的应用程序?
Emre他,根据你的设置你只设置烫发的开始/最大尺寸。 尝试将这些参数添加到您的JVM:-xms128m -Xmx128m
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。