秒杀系统的性能优化

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

相关推荐
zhuyasen1 小时前
单机已达上限?PerfTest 分布式压测登场,轻松模拟百万用户洪峰
后端·性能优化·测试
武子康2 小时前
Java-141 深入浅出 MySQL Spring事务失效的常见场景与解决方案详解(3)
java·数据库·mysql·spring·性能优化·系统架构·事务
夜月yeyue9 小时前
个人写HTOS移植shell
c++·mcu·算法·性能优化·架构·mfc
夜月yeyue10 小时前
ART 加速器、流水线与指令预测的关系详解
linux·服务器·c语言·单片机·嵌入式硬件·性能优化·嵌入式高阶技巧
度熊君11 小时前
深入解析 Matrix FrameTracer:Android 帧率监控的实现与源码剖析
性能优化
DASXSDW14 小时前
NET性能优化-使用RecyclableBuffer取代RecyclableMemoryStream
java·算法·性能优化
国科安芯14 小时前
ASP3605电源芯片的性能优化与改进思路
网络·单片机·嵌入式硬件·安全·性能优化
TechMix14 小时前
【性能优化】帧率优化方法:第一步——量化
性能优化
lang2015092814 小时前
MySQL 8.0性能优化终极指南
数据库·mysql·性能优化
TDengine (老段)2 天前
TDengine 时序函数 MAVG 用户手册
大数据·数据库·物联网·性能优化·时序数据库·iot·tdengine