千家信息网

Tomcat的运行和调优方法

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,这篇文章主要介绍"Tomcat的运行和调优方法",在日常操作中,相信很多人在Tomcat的运行和调优方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Tomcat的运行
千家信息网最后更新 2024年11月18日Tomcat的运行和调优方法

这篇文章主要介绍"Tomcat的运行和调优方法",在日常操作中,相信很多人在Tomcat的运行和调优方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Tomcat的运行和调优方法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Tomcat的默认配置,性能并不是最优的,我们可以通过优化tomcat以此来提高网站的并发能力。提高Tomcat的性能可以分为两个方向。

服务器资源

服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响,所以说服务器性能牛B,Tomcat也不会太差。当然提高服务器的硬件配置,是需要大量RMB的支持的。所以不到万不得已不会采用这种方式,一般公司会采取下面这种通过优化配置,来提升Tomcat性能的方式。

优化配置

优化配置之前,我们需要配置一个tomcat管理员账户,来登录查看Tomcat控制台提高的各种参数。

在conf/ tomcat-users.xml下添加用户:

启动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连接器禁用。

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

到此,关于"Tomcat的运行和调优方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

线程 性能 运行 服务器 处理 服务 配置 方法 参数 模式 学习 名字 方式 空闲 最大 重要 前缀 字符 字符串 容器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 宽城区智能网络技术诚信合作 西城数据库加密系统 连接服务器数据库 乡镇级数据库 数据库应用编程c语言 洗衣液裂变模式软件开发 冒险岛如何在数据库查看任务id 软件开发会计做账流程图 办公网络安全培训重要性 我的世界服务器增加音乐 数据库 教学管理 G 日历hgp怎么用服务器连接主板 做直播需要多大的服务器 中央中央网络安全和信息化委员会 2019网络安全教育周 数据库体系结构是那些 数据库 大数据 互补 宁波一站式软件开发流程 黄浦区电商软件开发产品介绍 网络安全信息化培训总结 谷歌服务器什么时候能上市 软件开发技术不包括哪些 网络视频服务器管理下载 网络技术推广实习报告 微软技术丛书 快速软件开发 远程重启服务器管理口 师生网络安全实施方案 我的世界拔刀服务器 二本软件开发工程好找工作吗 www服务器的建立及管理
0