【问题标题】:Java Using High Virt Memory [closed]使用高 Virt 内存的 Java [关闭]
【发布时间】:2013-08-19 19:10:43
【问题描述】:

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

我是 linux 新手,这让我有点困惑。我认为这是不准确的,但如果有人能解释这里发生了什么,那将不胜感激?

【问题讨论】:

  • 我认为这更像是服务器故障或超级用户的问题。

标签: java linux apache


【解决方案1】:

结帐 linuxatemyram.com

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

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

-Xms1024m -Xmx1024m

例如限制为 1gb

【讨论】:

  • 网站链接真的很有帮助,谢谢:)
【解决方案2】:

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

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

但在我到达那里之前,我应该解释一下 JVM 是如何工作的——当作为启动配置项的一部分启动 java 进程时,会给出称为 Xmx 和 Xms 的配置项,这实际上可以根据应用程序是什么以及它是什么而定是在做。为什么哦为什么那么高?

Java 虚拟机有一个叫做内存堆的东西——它设置得越大,在完成完整的垃圾回收之前它就越长——等等,让我们说高端银行机器,它被设置为非常高,这样它就可以运行一整天不需要重新启动(重新启动是完整的垃圾收集) - 垃圾收集的时间越长,垃圾收集所需的时间就越长,所以本质上是一个小的应用程序中断,除非在这些期间其他人接管...... .

那么做一个

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

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

与曾经配置它的人交谈,找出为什么这么高

然后做一个

free -m

查看你有多少实际可用内存以及是否正在使用交换,因为如果你最终处于交换状态,那么由于它使用磁盘作为内存,盒子会变慢..

希望到最后你对 Linux 更加熟悉

E2a

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

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

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

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

运行 nmoncmd 以及您可能希望运行的其他功能

iftop 如果您想查看网络吞吐量

【讨论】:

  • 现在在这里感觉受过更多教育,谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 2017-10-06
  • 2023-04-05
  • 2021-09-24
相关资源
最近更新 更多