Tomcat性能调优实战

 今日帮朋友作了tomcat性能调优的实际操做,心得记录一下。redis

服务器:Windows2017apache

配置:CPU 4 内存 8Gtomcat

Tomcat8.0+版本。服务器

压力测试工具:apache-jmeter-4.0 (测试方法参考:https://blog.csdn.net/lan_shu/article/details/55190127)cookie

部署应用后测试tomcat并发性能。网络

若按tomcat初始配置支持并发数在150左右压力30秒开始出现请求丢失。session

后通过tomcat性能调优后tomcat单台并发数支持300,压力30秒左右丢包数0.05%并发

所以tomcat性能调优仍是很重要的一个环节。tcp

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

相关文章
相关标签/搜索