gpt4 book ai didi

java - 高交换内存利用率

转载 作者:行者123 更新时间:2023-11-29 10:19:33 24 4
gpt4 key购买 nike

服务器配置:

  1. 物理内存 - 16Gb
  2. 交换内存 - 27Gb
  3. 操作系统 - Solaris 10
  4. 可用物理内存 - 598 Mb
  5. 使用的交换内存 - ~26Gb
  6. Java 版本 - Java HotSpot(TM) 服务器虚拟机 - 1.6.0_17-b04

我的任务是减少使用的交换内存:-我有的解决方案

  1. 停止所有 Java 应用程序并等待物理内存被充分释放。然后执行命令“swapoff -a”(尚未找出与此命令等效的 Solaris)...等到使用的交换内存降为零。然后执行命令“swapon -a”
  2. 增加物理内存

我需要以下方面的帮助:-

  1. swapoff 和 swapon 在 solaris 中的等效项是什么?
  2. 选项 1 能否清除已用交换?

百万感谢!!!

最佳答案

首先,Java 和 swap 不能混用。如果您的 Java 应用程序正在交换,那么您就完蛋了。很少有事情能像交换的 Java 进程那样扼杀一台机器。 GC 和交换只是一场噩梦。

因此,鉴于此,如果您的机器与 java 进程正在交换——那台机器太小了。获取更多内存,或减少机器上的负载(如果可能,包括 java 进程的堆)。

您的机器没有物理内存(600 多 Mb)和可用交换空间(1 多 Gb)这一事实是机器重载的另一个指标。

当资源耗尽时,各种各样的事情都可能导致您的 Java 进程出错。

杀死 Java 进程将“将其从交换中取出”,因为该进程不存在,它不能处于交换中。所有其他进程都一样。 “交换内存”可能不会立即关闭,但如果一个进程不存在——它不能交换(除非使用不幸被换出的持久共享内存缓冲区,并且 Java 通常不使用那些。)

据我所知,没有什么好方法可以告诉操作系统将特定程序锁定在物理 RAM 中并防止它被调出。而且,坦率地说,您不想这样做。

无论是什么占用了您的所有 RAM,您都需要认真考虑减少它的占用空间,或者将 Java 进程从这台机器上移开。您只是遇到了硬性限制,并且这 block 石头中没有更多的血。

关于java - 高交换内存利用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9291184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com