在Web服务的部署过程中,应用程序预热会遇到哪些问题?
Java有非常丰富的应用场景,一个典型的场景就是我们会用Java写一些 Web服务。在Web服务的部署过程中,会发现预热给我们带来非常大的困扰。当我们把一个Web服务部署到线上后,应用启动完成,此时就会有大量的用户请求进入。 这个时候由于有大量的热点方法需要被编译,JVM的编译线程会非常忙碌,因为它需要占用大量的CPU将这些方法编译成为Native Code。同时又因为用户的线程需要执行解决用户的请求,因此它也会占用大量的CPU,并且会抢占编译线程所使用的CPU,这样就会导致编译线程无法尽快地把这些热点方法编译到Native Code,使得应用程序长时间运行在解释执行的状态,降低服务的质量。同时,服务的RT会增加,服务所使用的CPU也会非常的高,这就是在真实场景中所遇到应用程序预热的问题,接下来我们来看一下阿里巴巴Dragonwell 8中的JWarmup特性是如何解决这个问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。