【Tomcat】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"/>
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
启动tomcat,登录查看信息:http://127.0.0.1:8080/
tomcat的3种运行模式
tomcat的运行模式有3种:
bio:
默认的模式,性能非常低下,没有经过任何优化处理和支持.
nio:
nio(new I/O),是JavaSE 1.4及后续版本提供的一种新的I/O操作方式(即Java.nio包及其子包)。javanio是一个基于缓冲区、并能提供非阻塞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的优化配置,你的Tomcat服务器并发量肯定会有大幅度的提升。这只是简单的配置,后续还会有针对JVM的专项介绍。JVM参数也是影响Tomcat性能的一个重要因素
转自:https://www.cnblogs.com/sunfenqing/p/7339058.html
【Tomcat】Tomcat调优的更多相关文章
- nginx+keepalived+tomcat之tomcat性能调优
body{ font-family: Nyala; font-size: 10.5pt; line-height: 1.5;}html, body{ color: ; background-color ...
- 性能测试培训:tomcat性能调优方法
性能测试培训:tomcat性能调优方法 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loadrunner ...
- tomcat配置调优与安全总结
http://vekergu.blog.51cto.com/9966832/1672931 tomcat配置调优与安全总结 作为运维,避免不了与tomcat打交道,然而作者发现网络上关于tomcat配 ...
- Tomcat性能调优后, 启动出现警告问题 [did not find a matching property.]
http://blog.csdn.net/dracotianlong/article/details/8963594 Tomcat性能调优后, 启动出现警告问题 [did not find a mat ...
- (转)Tomcat配置调优与安全总结
tomcat配置调优与安全总结 作为运维,避免不了与tomcat打交道,然而作者发现网络上关于tomcat配置和调优安全的文章非常散,通过参考各位大神的相关技术文档,根据作者对tomcat的运维经验, ...
- 小计Tomcat的调优思路
描述 最近在补充自己的短板,刚好整理到Tomcat调优这块,基本上面试必问,于是就花了点时间去搜集一下tomcat调优 都调了些什么,先记录一下调优手段,更多详细的原理和实现以后用到时候再来补充记录, ...
- Tomcat性能调优实战
今日帮朋友做了tomcat性能调优的实际操作,心得记录一下. 服务器:Windows2017 配置:CPU 4 内存 8G Tomcat8.0+版本. 压力测试工具:apache-jmeter-4.0 ...
- 【转】tomcat性能调优
一.总结前一天的学习 从"第三天"的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是: ü 吞吐量 ü Responsetime ü Cpuload ü ...
- Tomcat性能调优方案
一.操作系统调优 对于操作系统优化来说,是尽可能的增大可使用的内存容量.提高CPU的频率,保证文件系统的读写速率等.经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快.. ...
- Tomcat性能调优
1.集成apache 虽然Tomcat也可以作web服务器,但是处理静态html的速度比不上apache,且其作为web服务器的功能远不如Apache,因此把apache和tomcat集成起来,讲ht ...
随机推荐
- kubernetes报错
错误信息:执行yaml文件后,服务在运行,但是提示命令找不到 原因:没有环境,相当于只有一个快捷方式 环境目录为/usr/local/bin 解决办法:将/etc/ansible/bin下的文件都拷贝 ...
- 让微信小程序每次请求的时候不改变session_id的方法
让微信小程序每次请求的时候不改变session_id的方法 每次微信小程序请求的时候都会改变session id, 还好他的请求方法内可以设置header头 所以只需要在启动程序后第一次请求服务器获得 ...
- Internet History 课程笔记
课程地址:https://www.coursera.org/learn/internet-history 科学|上网可解决视频加载不出来的问题 Week 1 High Stakes Research ...
- solidity代码
http://www.tryblockchain.org/ 教你如何舒服的看solidity代码 最近智能合约随着区块链技术的发展越发收到广大技术人员的重视! 其中最被看好的以太坊就是一个提供智能合约 ...
- 超好用的thinkphp5.0/thinkphp5.1分页插件!详细使用步骤(内附代码)
效果 tp5.0使用方法 page下载地址:进入下载页面 提取码:s75k 1,把page文件夹整个目录复制到 目录extend下 2,修改默认配置 app/config.php 把里面的 'pagi ...
- spring--Springmvc中@Autowired注解与@Resource注解的区别
Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@PostConstruct以及@PreDestroy. @Resour ...
- 命令行启动tomcat
windows下进入CMD启动.window+r打开命令窗口具体步骤:1:在命令行中输入Tomcat安装的磁盘:E:2:进入Tomcat的主安装目录:cd Tomcat3:进入bin文件夹:cd bi ...
- Xen的半虚拟化(Paravirtualization)
三个特权级 IA-32体系提供了4个特权级别,正常情况下只用了2个, 操作系统运行在Ring 0,而应用程序运行在Ring 3. Xen让自己运行在Ring 0, 而操作系统运行在Ring 1, 应用 ...
- Codeforces 1169A Circle Metro
题目链接:codeforces.com/contest/1169/problem/A 题意:有俩个地铁,一个从 1 → 2 → …→ n → 1→ 2 →…, 一个 从 n → n-1 →…→ 1 → ...
- shell 删除超过30天的文件和目录
#!/bin/bash location="/root/sqlbak/" find $location -mtime +30 -type d |xargs rm -rf #删除目录 ...