Tomcat性能调优实战
今日帮朋友做了tomcat性能调优的实际操作,心得记录一下。
服务器:Windows2017
配置:CPU 4 内存 8G
Tomcat8.0+版本。
压力测试工具:apache-jmeter-4.0 (测试方法参考:https://blog.csdn.net/lan_shu/article/details/55190127)
部署应用后测试tomcat并发性能。
若按tomcat初始配置支持并发数在150左右压力30秒开始出现请求丢失。
后经过tomcat性能调优后tomcat单台并发数支持300,压力30秒左右丢包数0.05%
因此tomcat性能调优还是很重要的一个环节。
Tomcat性能调优相关参数:
fs.file-max = 655350 # 系统文件描述符总量
net.ipv4.ip_local_port_range = 1024 65535 # 打开端口范围
net.ipv4.tcp_max_tw_buckets = 2000  # 设置tcp连接时TIME_WAIT个数
net.ipv4.tcp_tw_recycle = 1  # 开启快速tcp TIME_WAIT快速回收
net.ipv4.tcp_tw_reuse = 1  # 开启TIME_WAIT重用
net.ipv4.tcp_syncookies = 1  # 开启SYN cookies 当出现syn等待溢出,启用cookies来处理,可防范少量的syn攻击
net.ipv4.tcp_syn_retries = 2  # 对于一个新建的tcp连接,内核要发送几个SYN连接请求才决定放弃
net.ipv4.tcp_synack_retries = 2  # 这里是三次握手的第二次连接,服务器端发送syn+ack响应 这里决定内核发送次数
net.ipv4.tcp_keepalive_time = 1200  # tcp的长连接,这里注意:tcp的长连接与HTTP的长连接不同
net.ipv4.tcp_fin_timeout = 15    # 设置保持在FIN_WAIT_2状态的时间
net.ipv4.tcp_max_syn_backlog = 20000  # tcp半连接最大限制数
net.core.somaxconn = 65535  # 定义一个监听最大的队列数
net.core.netdev_max_backlog = 65535  # 当网络接口比内核处理数据包速度快时,允许送到队列数据包的最大数目
本人配置:
<Connector port="8080" protocol="HTTP/1.1"
               maxThreads="1000"
               minProcessors="50"
               maxProcessors="2000"
               minSpareThreads="100"
               maxSpareThreads="1000"
               enableLookups="false"
               URIEncoding="utf-8"
               acceptCount="1000"
               connectionTimeout="20000"
               disableUploadTimeout="ture"
               redirectPort="8443" />
-------------------------------------------------------------------------------------------------------------------------
个人建议以上服务器配置可拆为两台通过ngixn+tomcat集群,redis做session共享:(对于技术初学者来说还是采用上面方法比较简单)
服务器:Windows2017
配置:CPU 2 内存 4G
Tomcat性能调优实战的更多相关文章
- spring-petclinic性能调优实战(转)
		
1.spring-petclinic介绍 spring-petclinic是spring官方做的一个宠物商店,结合了spring和其他一些框架的最佳实践. 架构如下: 1)前端 Thymeleaf做H ...
 - JVM 性能调优实战之:一次系统性能瓶颈的寻找过程
		
玩过性能优化的朋友都清楚,性能优化的关键并不在于怎么进行优化,而在于怎么找到当前系统的性能瓶颈.性能优化分为好几个层次,比如系统层次.算法层次.代码层次…JVM 的性能优化被认为是底层优化,门槛较高, ...
 - JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码
		
本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...
 - 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性能调优后, 启动出现警告问题 [did not find a matching property.]
		
http://blog.csdn.net/dracotianlong/article/details/8963594 Tomcat性能调优后, 启动出现警告问题 [did not find a mat ...
 - Apache Pulsar 在 BIGO 的性能调优实战(上)
		
背景 在人工智能技术的支持下,BIGO 基于视频的产品和服务受到广泛欢迎,在 150 多个国家/地区拥有用户,其中包括 Bigo Live(直播)和 Likee(短视频).Bigo Live 在 15 ...
 - Java性能调优实战,覆盖80%以上调优场景
		
Java 性能调优对于每一个奋战在开发一线的技术人来说,随着系统访问量的增加.代码的臃肿,各种性能问题便会层出不穷. 日渐复杂的系统,错综复杂的性能调优,都对Java工程师的技术广度和技术深度提出了更 ...
 - 基于JVM(内存)和Tomcat性能调优
		
一.总结前一天的学习 从“第三天”的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是: ü 吞吐量 ü Responsetime ü Cpuload ü MemoryUsa ...
 
随机推荐
- Spring Boot 2.X(一):入门篇
			
什么是 Spring Boot Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架遵循"约定优于配置& ...
 - PHP生成唯一ID的方法
			
PHP自带生成唯一id的函数:uniqid() 它是基于当前时间微秒数的 用法如下: echo uniqid(); //13位的字符串 echo uniqid("php_"); / ...
 - git一步步上传自己的项目至github,及仓库更新
			
一.使用git上传项目到github 首先登陆github账号,选择新建一个库,填写项目名称,描述 创建完成之后,跳转到下面的页面,下面红框中的网址要记住,在后面上传代码的时候需要使用 接下来,我们需 ...
 - spring配置文件默认名称及位置,ContextLoaderListener监听器作用
			
spring在web.xml中的配置 由于spring需要启动容器才能为其他框架提供服务,而web应用程序的入口是由web服务器控制的,因此无法在main()方法中通过创建ClassPathXmlAp ...
 - layui navTree 动态渲染菜单组件介绍
			
navTree.js 简介 extends/navTree.js 是一个基于 layui 扩展的模块化组件,用于构建后台布局系统中的垂直导航菜单与水平导航菜单. extends/navTree.js ...
 - MySQL索引的建立与实现
			
一.索引介绍 1.MySQL中,所有的数据类型都可以被索引,索引包括普通索引,唯一性索引,全文索引,单列索引,多列索引和空间索引等. 2.额外的:我已知的自动创建索引的时机:创建主键,唯一,外键约束的 ...
 - Jackson中@JsonProperty等常用注解
			
Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个.虽然JDK自带了XML处理类库,但是相对来说比较低级 本文将介绍的Jackson常用注解:精简概述 Jack ...
 - [Luogu1291][SHOI2002]百事世界杯之旅
			
题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶 ...
 - 【原创】(九)Linux内存管理 - zoned page frame allocator - 4
			
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
 - eclipse 中配置maven环境
			
选择 菜单栏 window -preferences-maven- installations 点击add 添加自己的maven 库 配置 setting 第一个为全局配置 第二个为用户配置可以覆盖全 ...