Tomcat的默认配置,性能并不是最优的,我们可以通过优化tomcat以此来提高网站的并发能力。提高Tomcat的性能可以分为两个方向。
服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响,所以说服务器性能牛B,Tomcat也不会太差。当然提高服务器的硬件配置,是需要大量RMB的支持的。所以不到万不得已不会采用这种方式,一般公司会采取下面这种通过优化配置,来提升Tomcat性能的方式。
优化配置之前,我们需要配置一个tomcat管理员账户,来登录查看Tomcat控制台提高的各种参数。 在conf/ tomcat-users.xml下添加用户: <role rolename='manager'/><role rolename='manager-gui'/><role rolename='admin'/><role rolename='admin-gui'/><user username='tomcat' password='tomcat' roles='admin-gui,admin,manager-gui,manager'/> 启动tomcat,登录查看信息:http://127.0.0.1:8080/
tomcat的运行模式有3种: bio: nio: apr:
修改server.xml里的Connector节点,修改protocol为org.apache.coyote.http11.Http11NioProtocol
在tomcat中每一个用户请求都是一个线程,所以可以使用线程池提高性能。 开启并且使用 在Connector中指定使用共享线程池 查看Tomcat控制台 Executor重要参数说明: name:共享线程池的名字。这是Connector为了共享线程池要引用的名字,该名字必须唯一。默认值:None; namePrefix:在JVM上,每个运行线程都可以有一个name 字符串。这一属性为线程池中每个线程的name字符串设置了一个前缀,Tomcat将把线程号追加到这一前缀的后面。默认值:tomcat-exec-; maxThreads:该线程池可以容纳的最大线程数。默认值:200; maxIdleTime:在Tomcat关闭一个空闲线程之前,允许空闲线程持续的时间(以毫秒为单位)。只有当前活跃的线程数大于minSpareThread的值,才会关闭空闲线程。默认值:60000(一分钟)。 minSpareThreads:Tomcat应该始终打开的最小不活跃线程数。默认值:25。 threadPriority:线程的等级。默认是Thread.NORM_PRIORITY Connector重要参数说明: executor:表示使用该参数值对应的线程池; minProcessors:服务器启动时创建的处理请求的线程数; maxProcessors:最大可以创建的处理请求的线程数; acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。 参数最佳实践 禁用AJP连接器 AJP(Apache JServer Protocol) 我们一般是使用Nginx+tomcat的架构,所以用不着AJP协议,所以把AJP连接器禁用。 在管理界面中看不到ajp了: 完成上面几步对Tomcat的优化配置,你的Tomcat服务器并发量肯定会有大幅度的提升。这只是简单的配置,后续还会有针对JVM的专项介绍。JVM参数也是影响Tomcat性能的一个重要因素。 |
|