当前位置: 首页 > 知识库问答 >
问题:

Java虚拟机与交换空间

齐昊
2023-03-14

1)在JVM Java堆、Perm生成或本机堆中发生OutOfMemory时,操作系统会使用交换空间吗?还是本机堆中OutOfMemory使用交换空间?

2)本机堆大小在JVM上是不可配置的,因为OS会在运行时将可用的RAM分配给JVM?

3)我们如何为JVM启用交换空间,或者默认情况下为Unix和Windows级别的所有进程启用交换空间?

5)如何在Unix和WINDOWS操作系统中禁用交换空间和改变特定JVM的交换空间大小,或者只能在操作系统级配置,应用于操作系统中的所有进程?

共有1个答案

穆飞龙
2023-03-14

这里有很多疑问...操作系统确实使用交换空间来创建所谓的虚拟内存(它显然大于您可能拥有的RAM)。它通常在默认情况下启用,但您需要进行检查。

您不能指示JVM只使用物理RAM AFAIK,但这将是操作系统本身的限制,而不是JVM(这应该回答5)。

您可以禁用swap(OS,而不是JVM),但这不是一个好主意。有多个进程在操作系统内运行,每个进程都需要运行空间(在某个时间点可能超过实际RAM)。它确实会影响性能,但更糟糕的是什么--一些性能损失(我假设操作系统有很多东西可以使它对您更好)还是应用程序的死亡?(这应该回答4)。

 类似资料:
  • 虚拟内存是在磁盘上的一块区域,用以扩充主存的容量。虚拟内存里放的数据是内核不常用的信息,内存管理机制会把这些不常用的内存块保存到磁盘上,当要使用时再重新调入主存。虚拟内存的速度比主存慢很多。用作虚拟内存的磁盘空间叫交换空间(swap)。在Linux下,交换空间可以是一个分区,叫交换分区;也可以是一个文件,叫交换文件。交换分区速度快,但一旦设置,不易修改分区大小;交换文件速度较交换分区慢,但它的容量

  • 我对虚拟函数感到困惑。有人告诉我,父类中的虚拟意味着我可以在子类中覆盖它。但是,如果我省略父类中的虚拟,我仍然可以覆盖它。

  • 一、运行时数据区域 程序计数器 Java 虚拟机栈 本地方法栈 堆 方法区 运行时常量池 直接内存 二、垃圾收集 判断一个对象是否可被回收 引用类型 垃圾收集算法 垃圾收集器 三、内存分配与回收策略 Minor GC 和 Full GC 内存分配策略 Full GC 的触发条件 四、类加载机制 类的生命周期 类加载过程 类初始化时机 类与类加载器 类加载器分类 双亲委派模型 自定义类加载器实现 参

  • 一、前言 本部分内容是关于Java虚拟机的一些面试高频知识点的总结。说到对Java虚拟机的学习,就不得不提下这本书《深入理解Java虚拟机》。 本部分的内容也是基于这本书进行整理的,这本书基本是面试必备。 关于Java虚拟机,重点考察以下三个方面的内容: 内存区域/内存模型 类加载机制 垃圾收集算法/收集器 二、目录 对象的创建、内存布局和访问定位 Java内存区域与内存模型 Java类加载机制及

  • 我正在读“Java虚拟机规范第7版”,有一些东西真的让我困惑,下面是问题: 在这种情况下,使用当前帧(§2.6)恢复调用器的状态,包括其局部变量和操作数堆栈,调用器的程序计数器适当增加以跳过方法调用指令。然后在调用方法的帧中正常地继续执行,返回的值(如果有的话)推送到该帧的操作数堆栈上。 那么“跳过方法调用指令”是什么意思呢?有人能解释一下吗?非常感谢!

  • 查看虚拟机相关的监控告警信息。 监控菜单下的虚拟机页面主要用于查看虚拟机相关的监控告警信息。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “监控/资源/虚拟机” 菜单项,进入虚拟机页面。 查看虚拟机列表 该功能用于查看虚拟机的监控告信息。 在虚拟机页面,支持查看以下信息: 名称:虚拟机的名称。 IP:虚拟机的IP地址。 监控状态:虚拟机是否设置告警以及发生告警。 状态:虚拟机的当