Java 瓦丁+;长时间闲置后,Spring引导应用程序速度非常慢
我的Vaadin 8+Spring引导应用程序存在性能问题 当我在长时间没有使用的情况下启动应用程序时,例如在一个晚上之后,需要花费几分钟才能从数据库获得响应 我有以下应用程序设置:Java 瓦丁+;长时间闲置后,Spring引导应用程序速度非常慢,java,performance,spring-boot,vaadin,Java,Performance,Spring Boot,Vaadin,我的Vaadin 8+Spring引导应用程序存在性能问题 当我在长时间没有使用的情况下启动应用程序时,例如在一个晚上之后,需要花费几分钟才能从数据库获得响应 我有以下应用程序设置: spring.datasource.max-active=10 spring.datasource.initial-size=5 spring.datasource.max-idle=5 spring.datasource.min-idle=1 spring.datasour
spring.datasource.max-active=10
spring.datasource.initial-size=5
spring.datasource.max-idle=5
spring.datasource.min-idle=1
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=true
spring.datasource.validation-query=SELECT 1
spring.datasource.time-between-eviction-runs-millis=5000
spring.datasource.min-evictable-idle-time-millis=60000
如果没有空闲时的
测试
,验证查询
和借用时的测试
,我甚至无法重新连接到数据库,但性能问题仍然存在。这看起来像是一个JDBC连接,空闲时间太长,在TCP/IP级别上超时。我想知道是否有一种设置可以在JDBC连接未被使用(比如2分钟)后自动关闭它。或者一个心跳设置,该设置将在所有JDBC连接上每隔5分钟发出一次选择1
,以使其保持活动状态。首先,您应该隔离问题。如果您怀疑数据库调用速度慢,请在应用程序中添加有关数据库调用的计时日志。Java应用程序运行缓慢的另一个可能原因是内存泄漏,这将更频繁地调用垃圾收集,最终导致OutOfMemoryException。在这种情况下,当应用程序运行缓慢时,您可以打印GC日志或进行堆转储。