
今天上午 9 点多,很多人在霸王茶姬的小程序里看到了同一句话。
「茶友们太热情啦,请稍后再试。」
事情是这样的。10 月 11 日晚上,郑钦文拿下中网女单冠军,霸王茶姬随后宣布,12 日全天在官方小程序下单,全场饮品买一送一。第二天一早,人一下子涌了进来,小程序进不去,自取和外卖都下不了单。官方回复说小程序正在努力修复中,后来恢复了访问,但还是慢,有的门店前面排着一百多杯没出。
你如果今天也想喝一杯,大概在刷新上按了好几次。
顺嘴说一句,这种活动流量跟平时不太一样。平时的人是陆陆续续来的,早上一拨,中午一拨,系统中间有喘气的工夫。活动的人是被同一条消息叫来的,一睁眼都想先把这杯领了,压力是一下子砸下来的。做技术的管这个叫流量洪峰,名字起得挺形象。
但我看到这条新闻,第一反应想的是另一头。
每次一个小程序被挤崩,屏幕那头都有一群人,比排队的人急得多。
先说清楚,霸王茶姬内部那天怎么处理的,我们不知道,官方也没说崩在哪一层。下面只是一个设想,假如那天值班的是你。

添加描述
9 点刚过,你的手机开始震。
告警一条接一条,接口超时,错误率往上走,群里有人在问是不是挂了。而你在地铁上,挤得包都拉不开,电脑在包里。
这种时刻其实特别折磨人。你知道出事了,但你看不见现场。
以前碰上这种情况,大概就两条路。要么在手机上临时找个 SSH 工具,翻服务器地址、翻密钥,在小键盘上一个字母一个字母地敲,敲错了重来。。。要么就干等,等到了工位再说。
说起来有点巧,这时候能帮你连上服务器的,也是一个小程序。
OrcaTerm 的微信小程序会把你在网页端存过的服务器连接同步过来,名称、地址、连接方式都不用再填一遍。点开那台机器,就连上了。
然后你也不用在手机键盘上抠命令。直接打一句话,或者干脆按住说,比如「对这台机器做一次全面巡检,输出健康报告」。它会自己拆成几步去查,先跑实例自助检测,再补几条终端命令,每一步做了什么都留在对话里,回头还能翻。

添加描述
坦率的讲,手机上能干的事有限。它适合先看一眼、确认情况、做点临时处置,真要大动干戈还得回电脑前。但就这一眼,你已经比干着急的时候多知道很多了。
终于到了,打开电脑。
现在的问题是,你后面挂着几十台应用机,比如说 40 台。到底是全都扛不住了,还是只有几台出了问题?
这个问题听着简单,答起来很烦。一台台登录,敲个 uptime,看一眼,记下来,再登下一台。等你看到第 20 台,前面那几台的情况早变了。
这时候我会打开 OrcaTerm 网页端的批量发送命令。
把那 40 台勾上,输入一条命令,发出去。结果按服务器一台一台排在右边,哪台负载高,哪台报错,一屏看完。

添加描述
你可能会说,我们有 Ansible 啊。我非常理解,Ansible 当然能干这个,前提是平时就把主机清单和密钥维护好了。很多团队其实没专门搭过这套,服务器散在一个个终端标签里,事到临头才发现,没有一条命令能扫完所有机器。
好,40 台的结果出来了,负载都不低。
群里有人说了一句,加机器啊。
这话听着特别对。云上加机器很快,流量大了就扩,天经地义。
但这里有个坑,我一直觉得值得单独拿出来说。
一个下单请求要经过入口、应用服务器、数据库、缓存好几层。应用服务器你想加多少台都行,可它们最后都要去连同一个数据库,而数据库能同时接多少个连接,是有上限的。
顺手算个账。MySQL 8.0 默认最多接 151 个连接,Java 项目里常用的连接池 HikariCP,默认每台应用机最多开 10 个。两个默认值都不动的话,十五六台应用机就把数据库占满了。
你们的 40 台能跑起来,说明这个上限早就调大过。那调到了多少?现在还剩多少?
这才是加机器之前要先问的。数据库要是已经快满了,新加的机器连不上它,请求开始排队、超时,用户看到的,还是那句请稍后再试。

添加描述
那怎么查?记不清查连接数的命令也没关系。在 OrcaTerm AI 里选中要查的那台机器的终端,用大白话说你想看什么,它会生成命令,你看过没问题再执行。想知道 40 台是不是都卡在等数据库,就再用批量发送扫一遍连接状态。
要是看下来数据库那边确实吃紧,接下来就得懂数据库的同事上了。可他不在你旁边。
以前这时候就开始截图、贴日志,在群里一段一段地描述你刚执行了什么、输出是什么。对方看得云里雾里,你讲得口干舌燥,现场还在一分一秒地变。
在 OrcaTerm 网页端,你可以在终端右上角开启协作,复制一个邀请链接发给他。他打开链接,就进到你这个终端里了,看到的是同一份完整输出,也能直接上手操作。
这里得提醒一句,拿到链接的人能控制这台机器,所以链接只发给信得过的同事,别往大群里扔。两个人一起操作的时候,也先说好谁来敲命令,别同时输入打起架来。
聊到这儿,其实我想说的就一件事。
流量冲崩一个系统,很多时候是因为热度超出了预期,谁都可能碰上。更难受的是崩了之后看不清,不知道断在哪一层,不知道该加什么,只能盯着告警一条条往上刷。
也得说清楚 OrcaTerm 能干什么、不能干什么。它没法让你的系统不崩,扛住流量靠的是架构和容量规划。它管的是崩了以后那一个小时里,你能不能更快连上去,更快看清楚,人在地铁上也行。
下次你在哪个小程序里看到请稍后再试,可以想一想屏幕那头正在发生什么。
如果你就是那个会被叫起来的人,今天可以做一件小事。在微信里打开 OrcaTerm 小程序,看看你的服务器连接是不是已经同步进去了。真到了那一天,至少第一眼不用等。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。