运维Java技术升华JVM和并发编程

Tomcat优化

2019-01-26  本文已影响15人  于飞_d529

基本思路

Tomcat的基本优化

合理分配Tomcat需要的内存,设置catalina.sh中的JAVA_OPTS

一般设置-Xms,-Xmx相等以避免在每次GC后调整堆的大小,因为默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制
查看配置是否生效: jmap -heap tomcat的进程号

Tomcat本身的配置优化

在server.xml中<Connector>中配置

如果要加大并发连接数,应同时加大maxThreads和acceptCount,可以两个设置一样
WebServer允许的最大连接数还受制于操作系统的内核参数设置,可通过ulimit -a查看
如果配置了<Executor>,在<Connector>中通过executor属性指定参照<Executor>,那么<Connector>中关于线程的配置失效,以<Executor>中配置为准

Tomcat三种模式

BIO

BIO是最稳定最老的一个连接器,是采用阻塞的方式,以为着每个连接线程绑定到每个Http请求,直到获得Http响应返回,如果Http客户端请求的是keep-Alive连接,那么这些连接也许一直保持着知道到达timeout时间,此期间不能用于其他请求。

NIO

NIO是使用Java的异步IO技术,不做阻塞,要使用的话,直接修改server.xml里的Connector节点,修改protocol为:protocol="org.apache.coyote.http11.Http11NioProtocol"

APR

APR是使用原生C语言编写的非阻塞I/O,但是需要安装apr和native,直接启动就支持apr,能大幅度提升性能。使用时指定protocol为protocol="org.apache.coyote.http11.Http11AprProtocol".

上一篇下一篇

猜你喜欢

热点阅读