刷新JVM内存和交换

刷新JVM内存和交换,jvm,swap,Jvm,Swap,虚拟机: 4CPU 10GB内存 10GB交换 Java 1.7 -Xms=-Xmx=6144m 雄猫7 我们观察到JVM有一种非常奇怪的行为。JVm驻留内存开始收缩,交换使用率飙升至50%以上 请参阅以下监控工具的统计信息 任何能理解这一点的人都非常感激 谢谢 或者您的Java程序是空闲的,它不需要内存,您的交换性很高?在这种情况下,您的操作系统将释放RAM以防万一,只留下使用过的部分 在我看来,这实际上是一种良好的行为,为什么你们要浪费RAM去做那个些不需要它的进程呢 除非您在VM上只运

虚拟机:

4CPU 10GB内存 10GB交换

Java 1.7 -Xms=-Xmx=6144m

雄猫7

我们观察到JVM有一种非常奇怪的行为。JVm驻留内存开始收缩,交换使用率飙升至50%以上

请参阅以下监控工具的统计信息

任何能理解这一点的人都非常感激


谢谢

或者您的Java程序是空闲的,它不需要内存,您的交换性很高?在这种情况下,您的操作系统将释放RAM以防万一,只留下使用过的部分

在我看来,这实际上是一种良好的行为,为什么你们要浪费RAM去做那个些不需要它的进程呢


除非您在VM上只运行这一个进程,否则最好将交换设置为0或其他较小的数字-此内存已分配给此单个进程,因此我们可能会禁用交换。

感谢您的响应。是的,这比Java更接近于系统故障排除,但我认为这是一个合适的论坛来启动这个主题,以防有人在JVM中看到这种现象

无论如何,我已经检查了顶部,除了Java之外,没有其他进程需要内存。实际上,第二个顶级进程利用了72MB(RSS)

否此系统上未设置交换性,但默认为60。我没有分享的另一个信息是,集群中有4台应用服务器,所有服务器都在同一时间显示了这种行为。好吧,JVM不会调出,但操作系统会调出。但所有这些都让我困惑

所有这些应用服务器都处于生产状态,忙于处理请求,因此不会空闲。使用的堆大小为平均5GB,使用的是6GB


我发现的另一件有趣的事情是,同时Vmware日志中出现了一些失败的消息,这正是我正在调查的

我相信这更多的是一个Linux系统管理问题,所以它可能属于服务器故障,而不是这里。但我猜还有另一个过程没有出现在你的图表上。使用
top
查看所有进程,然后按
M
按内存使用情况排序。