支付宝小程序 社区 · 把 alipay-miniprogram 的构建时间从 4 分钟压到 40 秒,主要靠这 5 件事

4
支付r/alipay-miniprogram·由 swoole_lee 发布·3 天前公告

把 alipay-miniprogram 的构建时间从 4 分钟压到 40 秒,主要靠这 5 件事

网上关于 alipay-miniprogram 的文章大多停在「怎么用」,很少有人写「什么时候不该用」。这篇想补上后半句。

# 压测命令:注意 -c 不要一次拉满,要阶梯上升
# 直接拉满会错过拐点
for c in 50 100 200 400 800; do
  wrk -t8 -c$c -d60s --latency http://127.0.0.1:8080/api/feed
  sleep 20
done

第一件事是把变量收敛干净。我们最开始同时在改配置和升级版本,结果两组数据的差异根本说不清是哪个带来的。后来回滚到只动一个变量,重跑了三遍,曲线才稳定下来。这一步很枯燥,但省不掉。

监控这块我们也顺手改了:把原来的平均值告警换成分位数,并且按接口拆分。改完之后误报少了大概七成,值班同学的怨气肉眼可见地下降了。

最后提醒一个坑:容器环境下一定要记得同步调整内存相关的参数,否则宿主机的限制和进程内部的预期会对不上,表现就是偶发的、无法复现的失败。

真正让我意外的是长尾。平均值一直很漂亮,P99 却在某个阈值之后直接跳了一个数量级。原因不在 alipay-miniprogram 本身,而是我们上游的连接复用没做好,压测流量太「干净」,掩盖了长尾请求。

1 条评论

1 条评论

我
Wwinter·3 分钟前

同意上面说的。补充一点:如果开了这个选项,监控指标里的 GC 次数会翻倍,需要同步调整告警阈值,否则会一直误报。

67

这是帖子详情页 /zh-CN/c/alipay-miniprogram/post/p10。帖子与评论都由种子随机数确定性生成 —— 同一个帖子每次打开内容一致,因此可以直接分享链接、刷新、被搜索引擎收录。真实实现里这一页是 MySQL 读帖子 + Redis 缓存热帖 + 评论树按 path 字段一次性取出。

看数据表设计 →