系统相关
首页 > 系统相关> > java-高交换内存利用率

java-高交换内存利用率

作者:互联网

服务器配置:

>物理内存-16Gb
>交换内存-27Gb
>操作系统-Solaris 10
>物理内存免费-598 Mb
>使用交换内存-〜26Gb
> Java版本-Java HotSpot(TM)服务器VM-1.6.0_17-b04

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

>停止所有Java应用程序,然后等待直到物理内存被充分释放.然后
执行命令“ swapoff -a”(尚未找到此命令的Solaris等效项)…等待,直到使用的交换内存减少到零为止.然后执行命令“ swapon -a”
>增加物理内存

我需要以下几点帮助:

>相当于solaris的交换和交换?
>选项1是否可以清除已用的交换?

太感谢了!!!

解决方法:

首先,Java和swap不能混合使用.如果您的Java应用程序正在交换,那么您注定要失败.很少有东西会像交换的Java进程那样杀死机器. GC和交换只是一场噩梦.

因此,鉴于此,如果您使用Java进程的机器正在交换-该机器太小了.获取更多的内存,或减少机器上的负载(如果可能的话,包括java进程的堆).

您的计算机没有物理内存(600ish Mb),也没有可用的交换空间(1ish Gb),这是计算机过载的另一个指标.

当资源耗尽时,各种各样的事情都可能使Java进程出错.

杀死Java进程将“使它退出交换”,因为该进程不存在,所以不能进行交换.其他所有过程相同. “交换内存”可能不会立即崩溃,但是如果一个进程不存在-它就不能交换(除非使用永久交换共享内存缓冲区,否则该缓冲区会被交换出去,而Java通常不会使用那些.)

我不知道有什么好方法告诉操作系统将特定程序锁定到物理RAM并阻止其被调出.而且,坦率地说,您不想.

无论占用您所有的RAM,您都需要认真考虑减少其占用空间,或将Java进程移出该计算机.您只是在艰难地奔跑,这块石头就再也没有血迹.

标签:java,java-ee,solaris
来源: https://codeday.me/bug/20191013/1909958.html