我使用
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.
你能帮我解释一下这个问题吗?为什么会出现这个奇怪的问题?这是Spring框架的问题吗?
非常感谢您对此事的友好协助.
埃里克