Java使用高Virt内存

时间:2013-08-19 19:10:44

标签: java linux apache

enter image description here

根据这个,我在apache的java进程上使用了14GB +。 我只运行Minecraft控制面板,当我通过Minecraft运行内存检查时,它告诉我我使用了7.6GB的8GB。当我应该看到大约1-2GB的最大使用空间。

我是linux新手,这对我来说有点困惑。我相信这是一个不准确的问题,但如果有人能够解释这里发生的事情会受到赞赏吗?

2 个答案:

答案 0 :(得分:1)

结帐linuxatemyram.com

此外,如果它的虚拟机Java使用可能不准确。

您可以使用这些参数启动将内存限制为特定大小

-Xms1024m -Xmx1024m

限制为1gb,例如

答案 1 :(得分:0)

运行java进程的用户apache是​​的,它使用的是14gigs。

我认为你需要亲自动手并运行一些命令。

但在我到达那里之前,我应该解释一下JVM是如何工作的 - 当启动java进程时,作为启动配置项的一部分被称为Xmx和Xms,这可能是真正的范围取决于应用程序是什么以及它是什么是在做。为什么哦为什么这么高呢?

Java虚拟机有一个叫做内存堆的东西 - 设置得越大它就会在完成垃圾收集之前的时间越长 - 所以就可以说高端的银行机器设置为真正的高,所以它可以去整天都不需要重新启动(重新启动就是完全收集) - 垃圾收集所需的时间越长,垃圾收集所需的时间就越长,所以本质上是一个小的应用程序停机,除非在这些时间内接管其他人....

所以做一个

ps -elf |grep java 
or 
ps auwx|grep java

查看其配置并查看Xmx和Xms值

与谁配置它以找出原因如此之高

然后做一个

free -m

查看你有多少实际可用内存以及是否正在使用swap,因为如果你最终使用swap,那么由于它使用磁盘作为内存,该框会变慢..

希望在此结束时你更熟悉Linux

E2a中

如果设置为40gigs并且它可用,请确保它实际上会消耗掉40gig,因为名称声明它是一个虚拟机,然后它处理它自己的资源,因为它已被设置....所以在尝试完整的GC之前,它会慢慢慢慢耗尽40gig或足够接近...... 您真正需要的是 jconsole 以及与该java pid的连接或..如果可通过远程jmx调用访问..

jconsole应该是默认java安装的一部分

E2A再次如果您正在查看它的原因是因为存在性能问题,那么您可能使用了错误的命令

sudo apt-get install nmon iftop
or
sudo yum install nmon iftop

运行 nmon cmd 等您可能希望运行

iftop如果您希望查看网络吞吐量