Spring Boot 卡住约 4 秒

标签 spring performance tomcat spring-boot

我正在使用 Spring Boot 来运行一个安静的 Web 应用程序。它应该每秒处理 1000 个请求,但我发现每约 100 个请求应用程序需要大约 4 秒才能返回答案。我正在使用 Spring boot 版本 1.4.4.RELEASE。

最佳答案

将探查器附加到 JVM 后,我注意到其中一个 tomcat 线程正在更新其缓存(org.apache.catalina.webresources.Cache),增加缓存 ttl 确实如此,但是我在不同版本的 Tomcat 中没有看到此问题 Spring 启动。

@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 boot 升级到 1.5.8 后问题得到解决。

关于Spring Boot 卡住约 4 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47437212/

相关文章:

java - 我必须从数据库中获取 500K 行并将该数据写入文件,意味着执行 I/O 操作

c++ - 为什么二维数组访问比一维数组访问快?

tomcat - 无法访问 Tomcat 8 中的嵌入式 Derby

MYSQL auto_increment 从两个外键插入语句

java - Spring JPA findByDomainClass 生成错误的 where 子句

spring - spring的JavaMailSenderImpl是线程安全的吗?

java - 在 docker 容器中运行 eureka 服务

java - 从超大文本文件中检索、排序和操作数据的最快、最有效的方法

eclipse - 由于只读属性,在 tomcat 安装基础中分配临时目录导致错误

Spring事务配置-XML+注解一起-哪个高级?