原创

单机Tomcat到底能支持多少并发

1.tomcat主要参数

参数说明
minSpareThreads最小空闲线程,也就是核心线程数,默认10个
maxThreads最大线程数,默认200
查看当前线程数:ps huH p pid |wc -l
maxConnections最大连接数,默认8*1024=8192
查看当前并发数:netstat -apn|grep 8080 |grep ESTABLISHED -c
acceptCount达到最大连接数默认8192后,操作系统支持连接数量,默认100
参考:https://tomcat.apache.org/tomcat-9.0-doc/config/http.html

2.并发测试

硬件:ThinkPad i7 8核,16G内存

2.1测试程序

采用springboot一个简单demo,包含一个controller,一个方法用于计数

@Log4j2
@RequestMapping("/test")
@RestController
public class TestController {
	private static AtomicInteger COUNT = new AtomicInteger();

	@RequestMapping("count")
	public String getCount() {
		int cc = COUNT.incrementAndGet();
		String ret = "count=" + cc + ",thread=" + Thread.currentThread().getName();
		log.info(ret);
		return ret;
	}
}

2.2并发测试工具:JMeter

采用2000个线程测试并发,结果测试出吞吐量959

2.3查看线程工具:Java VisualVM

在没有请求的时候,显示线程26个,10个tomcat工作线程

当JMeter测试时候,线程数达到216个,增加了190个线程,说明tomcat默认10个线程,最大200个工作线程

正文到此结束