提升Tomcat性能的方法是什么

68次阅读
没有评论

共计 1918 个字符,预计需要花费 5 分钟才能阅读完成。

这篇“提升 Tomcat 性能的方法是什么”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“提升 Tomcat 性能的方法是什么”文章吧。

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 种运行模式

tomcat 的运行模式有 3 种:

bio:

默认的模式, 性能非常低下, 没有经过任何优化处理和支持.

nio:

nio(new I/O),是 Java SE 1.4 及后续版本提供的一种新的 I / O 操作方式 (即 java.nio 包及其子包)。Java  nio 是一个基于缓冲区、并能提供非阻塞 I / O 操作的 Java API,因此 nio 也被看成是 non-blocking  I/ O 的缩写。它拥有比传统 I / O 操作(bio) 更好的并发运行性能。

apr:

安装起来最困难, 但是从操作系统级别来解决异步的 IO 问题, 大幅度的提高性能.

启动 NIO 模式

修改 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)

AJPv13 协议是面向包的。WEB 服务器和 Servlet 容器通过 TCP 连接来交互; 为了节省 SOCKET 创建的昂贵代价,WEB 服务器会尝试维护一个永久 TCP 连接到 servlet 容器,并且在多个请求和响应周期过程会重用连接。

我们一般是使用 Nginx+tomcat 的架构,所以用不着 AJP 协议,所以把 AJP 连接器禁用。

提升 Tomcat 性能的方法是什么

在管理界面中看不到 ajp 了:

提升 Tomcat 性能的方法是什么

以上就是关于“提升 Tomcat 性能的方法是什么”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计1918字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)