秒杀系统的性能优化

秒杀任务总体QPS预期是每秒几十万,对tomcat、redis、JVM参数进行优化。

tomcat线程数

4核8G的机器,一般就是开200-300个工作线程,这是个经验值。每秒一个线程处理3-5个请求,200多个线程的QPS可以达到1000左右。线程不能太多,太多的话就会导致cpu负载过高,请求处理不过来,增加接口的延迟响应。

JVM参数优化

JVM参数优化的核心在于尽量避免FGC,那么YGC次数肯定会变多,每次YGC时间大概几十毫秒的话,这个其实也没有太大的影响,基本接口还是在200毫秒左右。

-XX:SurvivorRatio=6

redis集群

redis一个分片大概可以扛2-3wQPS,8个分片大概是20w的QPS。此时的redis的cpu负载大概是在50%左右,尚可以支撑。

TPS与QPS

秒杀接口一次TPS会发生很多次redis的读写操作,所以会包含多次QPS查询。每秒几千的TPS就相当于几万甚至十几万的QPS。

生产环境压测数据:

TPS 4543

QPS 22w

累积访问量 175w

相关推荐
tzhou6445210 分钟前
Nginx 性能优化与防盗链配置
运维·nginx·性能优化
虎子_layor3 小时前
单机压测从百到三千:一次短链跳转服务的全链路性能优化实战
后端·性能优化
better_liang5 小时前
每日Java面试场景题知识点之-数据库连接池配置优化
java·性能优化·面试题·hikaricp·数据库连接池·企业级开发
想搞艺术的程序员17 小时前
深入 NSQ 延迟消息实现原理:设计巧思与性能优化
性能优化·golang·nsq
J***793917 小时前
C在Unity3D中的渲染性能优化
性能优化
zero13_小葵司18 小时前
JavaScript性能优化系列(八)弱网环境体验优化 - 8.3 数据预加载与缓存:提前缓存关键数据
javascript·缓存·性能优化
1***y17818 小时前
Vue项目性能优化案例
前端·vue.js·性能优化
李斯维1 天前
布局性能优化利器:ViewStub 极简指南
android·性能优化
Wang's Blog2 天前
MySQL: 查询全流程深度解析与性能优化实践指南
数据库·mysql·性能优化
却尘2 天前
别再瞎用 Context 了,该上 Zustand 的时候就别犹豫
前端·性能优化·架构