一、Tomcat中的默认配置
线程任务就是一个连接的请求,每个请求都会尝试创建线程来处理。
最大工作线程数,默认200。 server.tomcat.max-threads=200 最大连接数默认是10000,同时支持的并发连接数 server.tomcat.max-connections=10000 等待队列长度,默认100。 server.tomcat.accept-count=100 最小工作线程数,默认10。 server.tomcat.min-spare-threads=10
线程数的经验值为:1核2G内存,线程数经验值200;4核8G内存, 线程数经验值800。(4核8G内存单进程调度线程数800-1000,超过这个并发数之后,将会花费巨大的时间在CPU调度上)
等待队列长度:队列做缓冲池用,但也不能无限长,消耗内存,出入队列也耗CPU。
maxThreads规定的是线程池创建的最大的线程数目,相当于线程池中的最大线程数,并不是实际running的CPU数量;实际上,maxThreads的大小比CPU核心数量要大得多。这是因为,处理请求的线程真正用于计算的时间可能很少,大多数时间可能在阻塞,如等待数据库返回数据、等待硬盘读写数据等。因此,在某一时刻,只有少数的线程真正的在使用物理CPU,大多数线程都在等待;因此线程数远大于物理核心数才是合理的。也就是说,Tomcat通过使用比CPU核心数量多得多的线程数,可以使CPU忙碌起来,大大提高CPU的利用率。
minSpareThreads相当于线程池中的corePoolSize,也就是核心线程数
maxConnections指的是Tomcat一瞬间最多能够处理的并发连接数。
acceptCount是tomcat接受的连接数超过maxconnections时,还可接受的连接数,当accept队列满了之后,client可能会返回read timeout 或者 connection reset by peer(tomcat官网说的是返回connection refused
)。
minSpareThreads:最小备用线程数,tomcat启动时的初始化的线程数;
标签:springboot,tomcat,队列,连接数,server,线程,CPU From: https://www.cnblogs.com/zhang12345/p/17626899.html