性能优化案例-提升单机QPS,CPU优化

本文分享了在面对巨大请求量和低延时要求的ADX竞价业务中,如何通过优化GC参数和精简代码逻辑,将单机QPS从100提升至350的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统优化案例-提升单机QPS,CPU优化

背景

最近公司接入ADX广告竞价相关业务。需要我们做ADX竞价系统。该业务有一下特性:

  1. 请求量巨大 6W+QPS
  2. 媒体方要求询价接口延时极低 65ms内返回。(很多大厂都要求30ms)
  3. 对于我们公司来说业务复杂性又很高。

我们在接入媒体方ADX询价业务时,我们申请了75台机器(8c16g)。但是只能支撑起7k的的QPS。
(不要鄙视我们,因为要快速响应业务。系统都是在老系统上修修补补上去的)。平均单台机器吞吐在100不到。主要的瓶颈是CPU。当单机QPS达到100时,CPU已经到达了75%,线上已经告警了。

所以我们问题点就在cpu上。OK我们开始吧。

分析

一般CPU问题,大概方向

  1. GC问题
  2. C2编译问题
  3. IO问题
  4. 代码复杂度过高

我们这个ADX引擎系统。没有IO。并且系统都有灰度预热。所以2、3直接可以排除。

GC问题:

查看CAT监控图:
在这里插入图片描述
上图可以看到GC 每分钟平均 发生miorGC 25次。每分钟 gc耗时0.6s
通过 jinfo -flags pid 查看启动参数。两个参数比较异常:
-XX:MaxGCPauseMillis=20ms
-XX:G1ReservePercent=25

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七层汉堡王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值