秒杀系统的性能优化

秒杀任务总体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

相关推荐
冴羽3 小时前
10 个被严重低估的 JS 特性,直接少写 500 行代码
前端·javascript·性能优化
下一站丶9 小时前
【JavaScript性能优化实战】
开发语言·javascript·性能优化
inBuilder低代码平台12 小时前
Electron应用优化与性能调优策略
javascript·性能优化·electron
Moe48815 小时前
CompletableFuture方法大全和使用详解(一步到位)
java·性能优化
陌上花开缓缓归以1 天前
linux系统移植过程中挂死问题分析
性能优化
工藤学编程1 天前
深入Rust:Tokio多线程调度架构的原理、实践与性能优化
性能优化·架构·rust
武子康1 天前
Java-165 Neo4j 图论详解 欧拉路径与欧拉回路 10 分钟跑通:Python NetworkX 判定实战
java·数据库·性能优化·系统架构·nosql·neo4j·图论
前端小咸鱼一条2 天前
16.React性能优化SCU
前端·react.js·性能优化
TDengine (老段)2 天前
益和热力性能优化实践:从 SQL Server 到 TDengine 时序数据库,写入快 20 秒、查询提速 5 倍
大数据·数据库·物联网·性能优化·时序数据库·tdengine·1024程序员节
敲代码的猴先生2 天前
技术分享 | torch.profiler:利用探针收集模型执行信息的性能分析工具
人工智能·pytorch·经验分享·语言模型·性能优化