JVM 垃圾回收怎么配合操作系统页面进行回收

老婷吖_5724

老婷吖_5724

2026-09-16

794人浏览

原创

jvm垃圾回收不直接配合操作系统页面回收,而是在堆内存抽象层运作;其释放内存是否归还os、是否使用大页、是否触发缺页中断,会间接影响os内存视图与性能。

jvm 垃圾回收怎么配合操作系统页面进行回收

JVM 垃圾回收本身不直接配合操作系统页面(OS page)进行回收,它工作在应用层内存抽象(堆内存)上,而操作系统页面管理的是物理内存与虚拟内存之间的映射关系。两者属于不同层级的内存管理机制,没有协同调度或联合回收逻辑

不过,在实际运行中,JVM GC 与 OS 页面行为存在间接影响和可观测交互,主要体现在以下三方面:

1. 内存释放后是否归还给操作系统

JVM 堆内存由 -Xms-Xmx 控制,初始分配后通常不会主动把未使用的堆内存页归还给 OS(除非使用特定回收器并开启参数)。

PicMa Studio
PicMa Studio

PicMa Studio是一款AI图片处理工具,AI 一键批量增强、修复和彩色化您的照片。

下载
  • 默认行为(如 Parallel GC、CMS):GC 回收堆内对象后,仅在 JVM 内部标记空间为“空闲”,但对应的操作系统虚拟内存页仍被进程持有,RSS(Resident Set Size)不下降。
  • 例外情况(G1 / ZGC / Shenandoah)
    • G1 在 JDK 10+ 支持 -XX:G1PeriodicGCInterval + -XX:+G1PeriodicGCSystemLoadThreshold 等参数,可触发周期性尝试归还空闲内存页给 OS(需配合 -XX:+AlwaysPreTouch-XX:+UseG1GC);
    • ZGC(JDK 11+)和 Shenandoah(JDK 12+)支持自动内存返还,当堆空闲率持续高于阈值(如 ZUncommitDelay 默认 300 秒),会调用 madvise(MADV_DONTNEED) 通知 OS 回收对应物理页。

✅ 示例:启用 ZGC 并允许内存返还

java -XX:+UseZGC -XX:+ZUncommit -XX:ZUncommitDelay=60000 ...

2. 大页(Huge Pages)与 GC 的兼容性

若操作系统启用了透明大页(THP)或显式配置了 hugetlbpage,JVM 可通过 -XX:+UseLargePages 尝试使用 2MB/1GB 页面分配堆。

  • 影响:减少 TLB miss,提升吞吐;但 GC 暂停期间若需扫描大页中的对象,可能略微增加标记时间;
  • 注意:某些 GC(如 CMS)与 THP 存在兼容问题,易引发 commit failed 日志,推荐搭配 G1 或 ZGC 使用。

3. 缺页中断(Page Fault)与 GC 后的访问模式

GC 清理大量对象后,若 Survivor 或老年代区域长期未被访问,OS 可能将其对应物理页换出(swap out)或回收(若已 madvise(MADV_DONTNEED))。

  • 下次访问这些地址时触发次要缺页中断(minor page fault),由 OS 快速重新映射零页或从内存池分配;
  • 这类行为对应用透明,但若频繁发生(如堆过大 + RSS 压力高),可能加重 OS 调度负担,表现为 GC 日志中 STW 时间稳定,但整体响应延迟上升。

简单说:
JVM GC 不指挥操作系统怎么管页,也不依赖 OS 页面状态做存活判断;
但它释放堆空间的方式(是否归还、是否用大页、是否触发 madvise)会影响 OS 的内存视图;
反过来,OS 的内存压力(如 swap、OOM killer)也可能中断 JVM 进程——这时不是 GC 出问题,而是整个进程快被系统“请出去”了。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
视频服务器配置参数有哪些
视频服务器配置参数有哪些

视频服务器配置参数有处理器、内存、存储、视频编解码器、网络接口、视频输入输出接口、操作系统、安全性、环境适应性和成本。在搭建视频服务器时,需要根据实际需求和预算,合理选择这些参数,以实现高性能、高稳定性和低成本的目标。

2023.10.17

3620

11

linux的操作系统介绍
linux的操作系统介绍

Linux是一个灵活、稳定、安全的操作系统,适用于各种不同的应用场景,从个人电脑到服务器和嵌入式系统。想了解更多Linux的相关内容,可以阅读本专题下面的文章。

2024.03.20

2946

12

Linux操作系统的主要用途
Linux操作系统的主要用途

Linux操作系统用途广泛,包括:服务器运营,软件开发,科学研究和教育,嵌入式系统,以及个人电脑和笔记本电脑。想了解更多Linux的相关内容,可以阅读本专题下面的文章。

2024.03.21

4819

8

linux操作系统的作用
linux操作系统的作用

linux操作系统在以下领域发挥着关键作用:服务器和云计算;嵌入式系统;个人电脑和笔记本电脑;超级计算;其他领域等等。想了解更多linux操作系统的相关内容,可以阅读本专题下面的文章。

2024.04.12

2275

5

有哪些常见的网络操作系统
有哪些常见的网络操作系统

常见的网络操作系统有windows server、linux、unix、macos server、freebsd、cisco ios、juniper junos和hp-ux等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.09.12

2824

6

32位操作系统怎么改成62位的
32位操作系统怎么改成62位的

要将 32 位操作系统升级到 64 位,需要遵循以下步骤:1. 检查硬件和软件兼容性;2. 备份数据;3. 获取 64 位操作系统;4. 创建可启动安装媒体;5. 从安装媒体启动计算机;6. 选择“升级”选项;7. 完成安装。

2025.04.02

3143

9

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

20

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

180

9

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

ubuntu官方总文档
ubuntu官方总文档

共0课时 | 0人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 20万人学习