方法执行方面存在很大问题(我猜)。我使用的是Spring boot 2.0(也是使用1.5.x测试)+ Thymeleaf 3.
案例:
当应用程序运行超过48小时(例如)时,提交带有2个字段的简单POST表单需要appr。 15秒该方法不会调用与DB相关的任何内容。
@RequestMapping(value="/add", method=RequestMethod.POST)
public String addTile(Model model, @Valid @ModelAttribute("tile") Tile tile, BindingResult results) {
if(results.hasErrors()){
return "tile/add";
}
tileRepository.save(tile);
return "redirect:/";
}
经过我做过的许多测试后,没有发现内存,JDBC,连接韭菜等。
从GC的角度来看,也没有什么奇怪的。
我使用jProfiler并且从方法堆栈执行,延迟来自方法本身。
当我将VPS切换到另一个托管服务提供商并将会话更改为redis时,性能得到了显着提升,可能有30%-40%,但仍然无法正常工作。
我已经使用jMeter测试了应用程序的并发性问题,但一切都很完美,响应非常好。
只有当应用程序运行时间超过24小时/ 48小时并且没有活动用户时,才会出现此问题。
JVM的版本是Java 8 OpenJDK(版本1.8.0_151-b12),没有任何自定义设置..
先谢谢了。