当JVM执行完整的GC时,是否预计会看到大量的页面错误/秒?

它是Window 2003服务器。

我们正在进行一些性能testing,我们看到的是:1.在头5个小时内,页面错误/秒非常小,如10或20

  1. 在过去的1小时内,页面错误跳转到500页错误/秒

  2. 在最近1小时内,我们看到java服务器将停止logging任何东西6-7秒,然后恢复。 这在过去的1小时内发生了大约200次。

  3. 我们怀疑这是因为JVM垃圾收集。

我想知道的是,当JVM进行GC时,与没有GC相比,预计会出现大量的页面错误/秒?

是。

当你做垃圾回收的时候,你往往会访问大量最近没有被访问过的页面。 如果系统遇到内存压力,这些页面中的许多可能被认为是驱逐的候选对象。

对每个这样的页面(或作为一个单元pipe理的一组页面)的第一次这样的访问要求操作系统从驱逐候选者集合中移除它们,而是考虑它们最近被访问。 这需要一个软页面错误,给操作系统一个机会来改变会计。

最近访问过的很多页面都意味着大量的软页面错误。