我正在使用Spring Boot来运行一个安静的webapp。它应该应该每秒处理1000个请求,但是我看到每100个请求应用程序大约需要4秒才能返回答案。我正在使用Spring启动版1.4.4.RELEASE。
答案 0 :(得分:4)
将探查器附加到JVM之后,我注意到其中一个tomcat线程正在更新它的缓存(org.apache.catalina.webresources.Cache),增加了缓存ttl但是我没有看到这个问题在不同版本的春季启动。
@Bean
public EmbeddedServletContainerFactory servletContainer() {
return new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
final int cacheSize = 40 * 1024; // 40 mb
final int ttl = 10 * 60 * 1000; // 10 min
StandardRoot standardRoot = new StandardRoot(context);
standardRoot.setCacheMaxSize(cacheSize);
standardRoot.setCacheTtl(ttl);
// try this if the jar locks
context.setResources(standardRoot);
StandardContext standardContext = (StandardContext) context;
standardContext.setAntiResourceLocking(true);
}
};
}
将Spring启动升级到1.5.8后问题得以解决。