默认100
)acceptCount的经验值的范围为50-300,当tomcat的处理能力不够快的时候,能够调整该值,比较有用。html
当系统的并发量比较大的时候,关闭keep alive,而后适当调整该值web
当链接创建以后,常常得不到worker线程处理时,能够适当下降该值,开启keep alivetomcat
当该值设置为比较大的时候,请求的突增,会很快填满accept队列(完成三次握手创建链接,等待工做线程处理响应,若是一直没获得service,则client得不到响应,出现read timeout,最糟糕的状况是链接在accept队列等待了好久,等到能获得worker线程服务的时候,已经超时了,这样其实浪费了不少链接),让woker线程很是繁忙,当超过系统的承受能力的时候,请求不断堆积,而后致使工做线程cpu饿死(starvation)。所以须要系统进行自我保护,当超出负载能力的时候,迅速fail fast,返回503。并发
所以要合理评估系统高峰的时候,worker线程池的大小。假设server平均每一个请求耗时5ms,那么1个线程每秒rps能够有200,假设有4核cpu,那么每秒最大能够有800rps。如今假若有4个请求同时进来,那么4个线程将繁忙起来,也就是接下来的5ms中,这些线程时繁忙的。那么对于这个4核cpu的系统来讲,最大的rps就是800.socket
当acceptCount的值设置的过小的时候,当请求量大的时候,操做系统没法给tomcat创建更多的链接(没法完成三次握手),client端出现不少connect timeout,而这些被拒绝掉的请求多是在worker线程的处理能力以内的。tcp
当开启http keep alive的时候,client端可能没有那么及时地关闭链接,那么server端的worker线程会一直被这些实际上可能不活跃的链接给占用了,致使worker线程没能重复利用起来。可是关闭http keep alive的时候,频繁的地进行tcp链接和端口,这样会形成不少TIME_WAIT的socket,给服务端增长压力。操作系统
默认200
)经验值范围为200-800,能够从400设置起再进行调优.net
表明最大的并发请求数线程
当cpu利用率高的时候,不宜增长线程的个数,能够调小该值code
当cpu利用率不高,大部分是io阻塞类的操做时,能够适当增长该值
默认值为60000毫秒
)经验值为2000-60000,默认的60秒对于一个web server可能过高了,能够设置为3000
实际上指的是SO_TIMEOUT参数的值
表明在阻塞读写时,两个tcp包到来的最大间隔时间
当client比较慢的时候,能够增大该值
当须要快速超时时,能够下降该值