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
最新文章
- 设计模式-观察者模式(Observer Model)
- Hibernate简单实例
- lua序列化(支持循环引用)
- android 介绍0
- 一次DB2数据库连接失败(SQLSTATE=08001)的解决方法
- hdu2058java
- WPF Radio组的绑定
- poj 1985 Cow Marathon【树的直径裸题】
- mysql基础:列类型--整型
- 实现一个简单的Unity3D三皮卡——3D Picking (1)
- 【语法】修饰符 static extern const
- Archlinux 的U盘自动装载(三)udevil
- Django2.0中文文档
- php+redis 学习 三 乐观锁
- Gradle学习之构建java与web项目
- OSGi简介
- 什么是云?Iaas,Paas和SaaS
- (转!)利用Keras实现图像分类与颜色分类
- EntityFramework使用总结(与MVC4.0实现CURD操作)
- 【BZOJ2111】[ZJOI2010]排列计数(组合数学)
热门文章
- JavaSE----01.Java简介
- SpringCloud系列-利用Feign实现声明式服务调用
- vue3.0的安装使用
- SQL SERVER 数据库中查看文本字段中的数据长度LEN() 函数的使用方法
- yum安装出现No package vim available解决办法
- Tensorflow-gpu在windows10上的安装(anaconda)
- python基础一(运算符/变量定义/数据类型)
- CTF-SMB渗透
- [NOIp2009] luogu P1071 潜伏者
- 《FFT家族—从不会到崩溃(坑)》读blog笔记