今日帮朋友做了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

最新文章

  1. 设计模式-观察者模式(Observer Model)
  2. Hibernate简单实例
  3. lua序列化(支持循环引用)
  4. android 介绍0
  5. 一次DB2数据库连接失败(SQLSTATE=08001)的解决方法
  6. hdu2058java
  7. WPF Radio组的绑定
  8. poj 1985 Cow Marathon【树的直径裸题】
  9. mysql基础:列类型--整型
  10. 实现一个简单的Unity3D三皮卡——3D Picking (1)
  11. 【语法】修饰符 static extern const
  12. Archlinux 的U盘自动装载(三)udevil
  13. Django2.0中文文档
  14. php+redis 学习 三 乐观锁
  15. Gradle学习之构建java与web项目
  16. OSGi简介
  17. 什么是云?Iaas,Paas和SaaS
  18. (转!)利用Keras实现图像分类与颜色分类
  19. EntityFramework使用总结(与MVC4.0实现CURD操作)
  20. 【BZOJ2111】[ZJOI2010]排列计数(组合数学)

热门文章

  1. JavaSE----01.Java简介
  2. SpringCloud系列-利用Feign实现声明式服务调用
  3. vue3.0的安装使用
  4. SQL SERVER 数据库中查看文本字段中的数据长度LEN() 函数的使用方法
  5. yum安装出现No package vim available解决办法
  6. Tensorflow-gpu在windows10上的安装(anaconda)
  7. python基础一(运算符/变量定义/数据类型)
  8. CTF-SMB渗透
  9. [NOIp2009] luogu P1071 潜伏者
  10. 《FFT家族—从不会到崩溃(坑)》读blog笔记