具体看当前的服务器性能等一些指标,调到最合适就可以了。
当前环境2核8G
tomcat参数
默认内嵌Tomcat配置
server.tomcat.accept-count:等待队列长度,当可分配的线程数全部用完之后,后续的请求将进入等待队列等待,等待队列满后则拒绝处理,默认100。
server.tomcat.max-connections:最大可被连接数,默认10000
server.tomcat.max-threads:最大工作线程数,默认200,
server.tomcat.min-spare-threads:最小工作线程数,初始化分配线程数,默认10
默认配置下,连接超过10000后会出现拒绝连接情况
默认配置下,触发的请求超过200+100后拒绝处理(最大工作线程数+等待队列长度)
#更改内嵌tomcat参数
server.port=8080
server.tomcat.accept-count=1000
server.tomcat.max-threads=400
server.tomcat.min-spare-threads=100
jvm 参数修改
jvm_args=“-Xmx2048M-Xms1024M-XX:PermSize=256M-XX:MaxPermSize=512M-Duser.timezone=GMT+08”
容器问题优化
响应时间变长,TPS上不去
单Web容器上限
线程数量:
2核CPU 8G内存单进程调用线程数800-1000,1000以上后即花费巨大的时间在CPU调度上
等待队列长度:
队列做缓冲池用,但也不能无限长,消耗内存,出队入队也耗CPU
Mysql数据库QPS容量问题
主键查询:千万级别数据 = 1-10毫秒
唯一索引查询:千万级别数据 = 10-100毫秒
非唯一索引查询:千万级别数据 = 100-1000毫秒
无索引:百万条数据 = 1000毫秒+