首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >即使我限制了最大堆空间大小,JVM是如何分页/分出的呢?

即使我限制了最大堆空间大小,JVM是如何分页/分出的呢?
EN

Stack Overflow用户
提问于 2017-07-19 05:40:22
回答 1查看 283关注 0票数 1

我是Java的新手。

我在Java实现的分布式框架之上运行一个应用程序。应用程序是磁盘和网络I/O密集型工作。

每台机器都有32 GB内存。我在每台机器上运行了4个工人,并为每个机器分配了7GB的最大堆空间。因此,总共有28 GB内存空间预留给JVM。其余4GB保留给OS (分OS 7)。没有重量级的程序同时运行。

令人惊讶的是,当我通过dstat监视系统资源使用情况时,会发生大量的分页。

怎么可能呢?我限制了JVM的内存使用!

我感谢你的帮助,谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-19 08:46:00

JVM不分页显示内存。操作系统有。操作系统如何以及何时选择要删除的页面取决于配置。设置-Xmx只配置JVM中托管堆的上限。它不限制文件映射、直接内存分配、本机库或每次执行IO时内存中的页缓存。

因此,您并没有真正为JVM“预留”28 OS,因为操作系统对此一无所知,JVM对其他JVM一无所知。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45181790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档