秒杀系统的性能优化

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

相关推荐
贫民窟的勇敢爷们14 小时前
Vue项目性能优化的全流程指南
前端·vue.js·性能优化
MU在掘金9169514 小时前
Android SDK:TraceHook和BlockMonitor的设计
性能优化
RoboWizard16 小时前
DIY移动硬盘?2230能否堪大任!
数据库·人工智能·智能手机·性能优化·负载均衡
YYYing.16 小时前
【C++项目之高并发内存池 (五)】一些小细节和性能优化及整体测试
c++·性能优化·高并发·内存池·基数树
Shota Kishi2 天前
深入解析 Solana RPC getTransaction 性能优化:以最近 30 个 epoch 为重点的历史交易检索提速实践
网络协议·性能优化·rpc
安畅检测齐鲁物联网测试中心2 天前
信创软件性能优化测试三步法
性能优化·测试方法·数据库调优·硬件适配·信创软件
前进的李工2 天前
MySQL慢查询日志优化实战
数据库·mysql·性能优化
天若有情6732 天前
前端高阶性能优化:跳出传统懒加载与预加载,基于用户行为做轻量预判加载
前端·性能优化
MU在掘金916953 天前
布局分析:检测XML嵌套过深
性能优化
Highcharts.js3 天前
Highcharts React 性能优化指南|使用 useMemo 渲染五万数据点不卡顿
react.js·性能优化·react hooks·highcharts·usememo·大数据渲染·前端性能