我是Java的新手。
我在Java实现的分布式框架之上运行一个应用程序。应用程序是磁盘和网络I/O密集型工作。
每台机器都有32 GB内存。我在每台机器上运行了4个工人,并为每个机器分配了7GB的最大堆空间。因此,总共有28 GB内存空间预留给JVM。其余4GB保留给OS (分OS 7)。没有重量级的程序同时运行。
令人惊讶的是,当我通过dstat监视系统资源使用情况时,会发生大量的分页。
怎么可能呢?我限制了JVM的内存使用!
我感谢你的帮助,谢谢
发布于 2017-07-19 08:46:00
JVM不分页显示内存。操作系统有。操作系统如何以及何时选择要删除的页面取决于配置。设置-Xmx只配置JVM中托管堆的上限。它不限制文件映射、直接内存分配、本机库或每次执行IO时内存中的页缓存。
因此,您并没有真正为JVM“预留”28 OS,因为操作系统对此一无所知,JVM对其他JVM一无所知。
https://stackoverflow.com/questions/45181790
复制相似问题