Spring Boot + SSL:消耗太多CPU

时间:2016-09-08 10:43:22

标签: java ssl spring-boot

我使用Spring Boot + SSL等功能测试了Java Spring框架的性能,以开发REST API。

我发现如果我向Spring框架添加SSL功能,它会消耗太多的CPU。但是,我删除了SSL功能,这个问题不会发生。

我通过发送当前20个HTTP请求/秒或100个请求/秒来测试REST应用程序来进行压力测试,应用程序总是占用近200%的CPU。

我已将应用程序服务从Spring更改为Tomcat。结果是一样的。

Test Environment
 - Sender  : Loading Test Generator Ubuntu, Dual Core, EC2 on AWS.
 - Receiver: Spring-Boot + SSL, Ubuntu, Dual Core, EC2 on AWS.

以下是接收服务器上的测试程序。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Hello world!
 *
 */
@SpringBootApplication
//@EnableAutoConfiguration
public class App 
{
    public static void main( String[] args )
    {
        SpringApplication.run(App.class, args);
    }
}

以下是在发件人服务器上的围攻中加载测试生成器命令。

 //Current 1 request 
 siege -b -c6 -t60S https://receiver Server IP:8443/ 

 //Current 100 request 
  siege -b -c100 -t60S https://receiver Server IP:8443/

以下信息是我在接收服务器上的测试结果。

Current Requests/sec     Usage of CPU1  Usage of CPU2    Succ
   1                         40%           40%           100%
   2                         80%           80%           100%
   3                         95%           95%           100%
   6                         100%          100%          100%
  100                        100%          100%          100%
  600                        100%          100%          100%

似乎Spring的最大性能是3个请求/秒,而CPU的使用率低于100%。虽然spring应用程序可以处理所有请求,但它会消耗太多的CPU。

请下载一个非常简单的代码,并尝试一下。 https://github.com/dpomaresp/Spring-boot-with-ssl

你可以帮我澄清一下这个问题吗?为什么会出现这个奇怪的问题?这是Spring框架的问题吗?

非常感谢您对此事的友好协助。

埃里克

1 个答案:

答案 0 :(得分:1)