younggc专题

YoungGC 停顿超长时间

在生产环境中,不断发现一些运行在JVM上的应用程序,偶尔会因为记录JVM的GC日志被后台的IO操作(例如OS的页缓存回写)阻塞,出现长时间的STW(Stop-The-World)停顿。我们的调查表明,导致这些停顿的原因,是当JVM GC(垃圾回收)在写GC日时,由于write()系统调用所造成的。对于这些日志的写入操作,即使是采用异步写模式(例如,带缓存的IO或者非阻塞IO),仍然会被OS的页缓存