Tomcat-connector的微调(2): maxConnections, maxThreads

本文仅供自己学习使用,转载自http://ifeve.com/tomcat-connector-tuning-2/

1) 最大连接数

tomcat的最大连接数参数是maxConnections,这个值表示最多可以有多少个socket连接到tomcat上。BIO模式下默认最大连接数是它的最大线程数(缺省是200),NIO模式下默认是10000,APR模式则是8192(windows上则是低于或等于maxConnections的1024的倍数)。如果设置为-1则表示不限制。

在tomcat里通过一个计数器来控制最大连接,比如在Endpoint的Acceptor里大致逻辑如下:

 

计数器是通过LimitLatch锁来实现的,它内部主要通过一个java.util.concurrent.locks.AbstractQueuedSynchronizer的实现来控制。

我们在server.xml里对Connector增加maxConnections="1"这个参数,然后模拟2个连接:

然后通过jstack可以看到acceptor线程阻塞在countUpOrAwaitConnection方法上:

对于NIO和APR的最大连接数默认值比较大,适合大量连接的场景;如果是BIO模式线程池又设置的比较小的话,就需要注意一下连接的处理是否够快,如果连接处理的时间较长,或新涌入的连接量比较大是不太适合用BIO的,调大BIO的线程数也可能存在利用率不高的情况。

2) 最大线程数

如果没有对connector配置额外的线程池的话,maxThreads参数用来设置默认线程池的最大线程数。tomcat默认是200,对一般访问量的应用来说足够了。

赵伊凡BLOG

©原创文章,转载请注明来源: 赵伊凡's Blog
©本文链接地址: Tomcat-connector的微调(2): maxConnections, maxThreads

“Tomcat-connector的微调(2): maxConnections, maxThreads”的31个回复

  1. Pingback: Blue Coaster33
  2. Pingback: Sat TV
  3. Pingback: parking
  4. Pingback: youporn
  5. Pingback: her og nu laan
  6. Pingback: water ionizer
  7. Pingback: parking
  8. Pingback: water ionizer plans
  9. Pingback: paypal loans
  10. Pingback: useful site
  11. Pingback: electricians 43160
  12. Pingback: locksmiths el paso
  13. Pingback: click here!
  14. Pingback: try this website
  15. Pingback: house blue
  16. Pingback: electrician 19355
  17. Pingback: try what she says
  18. Pingback: HD Coloring Pages
  19. Pingback: loan payment plan
  20. Pingback: water ionizer
  21. Pingback: alkaline water
  22. Pingback: here
  23. Pingback: this post
  24. Pingback: learn more

发表评论

电子邮件地址不会被公开。 必填项已用*标注