根据这个,我在apache的java进程上使用了14GB +。 我只运行Minecraft控制面板,当我通过Minecraft运行内存检查时,它告诉我我使用了7.6GB的8GB。当我应该看到大约1-2GB的最大使用空间。
我是linux新手,这对我来说有点困惑。我相信这是一个不准确的问题,但如果有人能够解释这里发生的事情会受到赞赏吗?
答案 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如果您希望查看网络吞吐量