问数平台扛住峰值压测的实战复盘 运营小满上周筹备园区双十一招商活动提前找我确认问数平台当天并发估摸是平时五倍会不会把原系统拖垮答得慢不慢。我先把那次提前压测和之后真实峰值的应对记下来给同样要上问数平台的园区参考。先说结论只读账号先把写作风险隔掉压测再猛也不动原系统一行缓存加限流加物化视图兜住八成重复问法压到三倍峰值P99 仍压在八百毫秒以内压完照常可核对结论图表明细来源四件套一个不少只读探针不进门问数平台要看见数才能答可它动不得原系统一个字。我们给它的账号只有看的份。sql-- 只给看不给改 GRANT SELECT ON 园区经营宽表 TO 问数只读账号; -- 回写路径从源头堵死 REVOKE INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA 经营 FROM 问数只读账号;这么一设压测脚本再怎么狂点也改不了业务表。原系统照常办入住、收租金、出账单问数平台只是在外头看了一眼。并发洪流怎么接真实峰值那天下午招商和财务扎堆来问数。千把个并发同时涌进来引擎不能每次都现查源库。我们让问数引擎先接住流量源库只服务慢查询。普通问法走缓存和物化视图真正落到底层库的只占一小股。缓存护盾挡重复问白天问来问去其实八成是重复的。同样的问法五分钟内再来直接给缓存里的数。源库负载高了就少打搅它。yamlcache: key: 问法指纹 ttl: 300s hit_target: 0.8 pause_when: 源库负载大于七成常用指标提前物化好月底算收缴率这种重活不用每次现算。sqlCREATE MATERIALIZED VIEW mv_每月收缴率 AS SELECT 楼栋, 应收金额, 实收金额, 收缴率 FROM v_园区经营指标;压测仪表看什么压测不能只看成功率得盯 P99 和源库负载。我们设了三道线。盯的指标健康线破了怎么动问数 P99 延迟小于八百毫秒加缓存命中率调小并发池源库 CPU小于七成限流问数读保业务写缓存命中率大于八成扩物化视图覆盖高频问法踩坑表当时踩的坑现象怎么兜住缓存击穿某个冷门问法突然爆问缓存没挡住源库被打满加互斥重建单问法同刻只放一个查源库只读权限开太宽一次性给了整库读源库敏感表也暴露收窄到经营宽表视图敏感表不进视图自然语言歧义放大同一意思多种问法指纹各不相同缓存几乎不命中建问法归一先映射到标准问再查只盯成功率成功率九十九实则慢查询堆积用户体感卡改盯 P99延迟超线即告警回头看两套系统分工没变一个管发生一个管看懂。只读账号管住写缓存限流管住读两件事凑齐问数平台才敢在峰值上站着答。少等一次取数少做一次重复报表少一次反复解释。