Grails 3.2.9应用程序启动时性能不佳

时间:2017-09-05 06:25:33

标签: java grails spring-boot

最近我一直在更新从Grails 2.5.5到Grails 3.2.9的应用程序。

应用程序正在服务~3K RPM。

我目前遇到的问题是应用程序启动后性能不佳。我们的正常发布过程以下列方式工作(假设设置了2个节点):

  1. 有服务的2个节点正在运行。
  2. 关闭第一个节点。
  3. 在第一个节点上发布新版本。
  4. 第一个节点上的服务在Eureka中注册自己并开始使用请求。
  5. (在第二个节点上重复相同)

    问题开始出现在第4步。应用程序响应速度非常慢,时间确实不一致 - 有些响应在预期的时间范围内,但有些响应正常。

    示例日志:

    2017-09-01 08:03:38,594 INFO [request][http-nio-12345-exec-72][][]- END controller=98ms
     2017-09-01 08:03:38,911 INFO [request][http-nio-12345-exec-101][][]- END controller=134ms
     2017-09-01 08:03:38,948 INFO [request][http-nio-12345-exec-56][][]- END  controller=211ms
     2017-09-01 08:03:39,156 INFO [request][http-nio-12345-exec-82][][]- END  controller=95ms
     2017-09-01 08:03:39,124 INFO [request][http-nio-12345-exec-111][][]- END controller=98ms
     2017-09-01 08:03:39,184 INFO [request][http-nio-12345-exec-110][][]- END controller=4099ms
     2017-09-01 08:03:39,399 INFO [request][http-nio-12345-exec-46][][]- END controller=24ms
     2017-09-01 08:03:39,428 INFO [request][http-nio-12345-exec-43][][]- END  controller=191ms
     2017-09-01 08:03:39,744 INFO [request][http-nio-12345-exec-83][][]- END  controller=117ms
     2017-09-01 08:03:40,335 INFO [request][http-nio-12345-exec-56][][]- END  controller=483ms
     2017-09-01 08:03:45,595 INFO [request][http-nio-12345-exec-110][][]- END controller=5623ms
     2017-09-01 08:03:45,618 INFO [request][http-nio-12345-exec-83][][]- END  controller=5274ms
     2017-09-01 08:03:45,629 INFO [request][http-nio-12345-exec-144][][]- END controller=2007ms
     2017-09-01 08:03:45,671 INFO [request][http-nio-12345-exec-119][][]- END  controller=4591ms
    

    从中可以看出 - 很少有请求低于100毫秒,有些请求超过5秒。

    我的假设是由于Grails 3应用程序和延迟类加载的缓慢预热而发生。

    我已经完成的事情:

    1. grais.gorm.autowire = false
    2. grais.gorm.reactor.events = false
    3. 延迟在Eureka注册服务30秒(等待应用程序满载时)
    4. 我想到的下一件事是使用@CompileStatic注释编译项目。

0 个答案:

没有答案