一、前言
昨天发了一个《SpringBoot服务器压测对比(jetty、tomcat、undertow)》,本是工作的一个笔记,没想到被红薯翻牌了(荣幸之至)。看了OSCer的回复,感觉需要重新梳理下,因为确实存在描述不清和不合理的配置。
这篇博客的目的,不是复述上一篇博客,而是尽量规范的去做一次压测对比,并且能够清晰的描述出过程和结果。
二、准备
1、服务器
为了保证尽量少的干扰,这里不再在虚拟机上运行服务,而是直接在物理机上运行服务,并且在这台物理机上安装ab工具。
服务器配置是2个CPU,单个CPU8核,总共内存40G,1T的RAID5机械硬盘。服务器安装的系统是Centos7.5,系统优化同《Centos7高并发优化》所述。但额外的,因工作需要,这台物理机上有6个虚机,是不能关闭的。以下是简单的top展示:
2、测试项目
感谢@TGVvbmFyZA 的建议,测试项目不再使用生产项目,而是从Springboot官网打包2.x版本的项目,这样的目的是减少生产项目中不必要的依赖,从而避免不必要的开销。以下是简单的项目介绍:
序号
名称
版本
1
springboot
2.1.1
2
java
1.8
我已将项目放到Gitee,地址:https://gitee.com/loveliyiyi/test4server
以下贴出关键代码,以便更好理解。
package com.shy.test4server;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.context.request.async.WebAsyncTask;
/**
* @ClassName: TestController
* @Description: TODO(这里用一句话描述这个类的作用)
* @author chengcai.shang@cmgplex.com
* @date 2018年12月7日 上午9:36:25
*
*/
@Controller
@RequestMapping("/test")
public class TestController {
/**
* 未使用HTTP异步的接口
*
* @Title: testCeilingNoAsync
* @Description: TODO(这里用一句话描述这个方法的作用)