高峰压测机制,问题解决

【压测范围】
1.性能指标告警,如http线程,数据库使用率,接口日志
2.新功能上线
3.应用框架调整,新增模块或接口
4.业务范围扩大,推广
5.配合外部客户压测
6.研发提出压测诉求
7.技术栈升级

【压测目标】
1.日常访问量的3倍
3.tps为日常访问量的3倍
4.往年高峰tps作为标准
5.例如日常业务量,查车接口25次/秒,高峰则75次/秒指标压测

【压测指标】
1.业务能力:TPS/QPS,成功率95%以上,请求总数,持续时间,平均响应时间,最大响应时间
2.服务器:CPU使用率小于75%,内存使用率小于75%,网络速度
3.数据库:数据库连接使用率小于80%,http线程使用率,JVM内存使用率小于80%
4.中间件:redis:rediscpu内存使用率key响应时间,kafka:写入速度消费速度,DB,存储带宽

【压测工具agent&探针】
Agent(代理)
在压测中,Agent是部署在被测系统上的轻量级程序,负责收集系统性能数据并与压测控制端通信。可以理解为系统性能的"数据采集员"。

探针(Probe)
探针是嵌入到应用程序代码中的监控组件,用于采集特定代码路径的执行情况。可以理解为应用程序内部的"微型传感器"。

形象比喻
想象你要测试一座桥梁的承重能力(压测):

Agent 就像桥梁各处的摄像头和传感器,监控桥梁整体状态(如震动幅度、结构变形等)
探针 就像桥梁关键连接处的应力计,精确测量每个铆钉和钢索的受力情况
技术细节对比

特性 Agent 探针
部署位置 服务器/主机层面 应用程序内部
采集数据 系统级指标(CPU、内存、网络等) 应用级指标(方法耗时、SQL执行等)
安装方式 独立进程 代码植入/字节码增强
代表工具 JMeter Agent、Telegraf SkyWalking探针、Pinpoint探针
资源消耗 中等 通常较低(但取决于实现)

典型工作流程
压测控制器发出指令 →
Agent在目标机器上启动压力 →
探针收集应用内部细节 →
数据汇总到监控系统 →
生成性能报告

【问题解决】

1.接口TPS不达标,原因:es组件索引慢,优化索引查询策略
2.数据库值查不出来,原因:sql改变了,优化agent
3.连接数据库报错,原因:数据库最大连接数满了,修改最大连接数
4.慢sql,加索引解决
5.漏数问题,流量打到业务库,没有打到影子库,请求信息头里没有加压测标识,user agent配置为performance test
6.重启服务时,节点接入 的agent都要启动完,再压测
7.应用服务cpu正常,数据库cpu100%,数据库扩容
8.查询接口不达标,优化查询sql

posted @ 2025-06-08 13:03  呆呆酱  阅读(35)  评论(0)    收藏  举报