东山岛铜陵镇做海鲜水产电商的小陈,去年九月旺季找我。那天夜里十一点四十,他打电话过来,说下单页面一直转圈,客人跑掉一半。我登上去一看,机器没坏。是一张订单表没建索引,六十来个人同时下单就堵死了。你遇上高峰期卡死,先别急着加配置。他那会儿正准备下单买新机器。
卡死不等于配置不够
小陈那台机器是两核四G,看着确实寒碜。可我按耗时把那些慢操作排了一遍,发现堵的全是订单查询那几条。给表加了个索引之后,同一台机器扛住了九十多人同时下单。加配置是拿钱堆出来的,加索引是动脑子的事,一分钱不花。我当时心里还有点小得意。他一开始死活不信,说是机房的问题。
这话不是我瞎吹。同样一台机器,改之前六十个人就堵死。改之后九十多个人还能跑,中间只动了一条索引。你也别指望每次都这么走运,碰上程序写得实在烂的,该换还是得换。我的意思是,别一上来就掏钱买机器,先把慢的地方找出来。
该不该换机器看三个数
那怎么判断该不该换?我一般盯三个数。CPU 是不是长期超过八成?内存有没有一直在用交换区?带宽上下行是不是打满了?三个里有两个长期超标,才轮到谈加配置的事。只超一个,八成是程序写得不好。这时候换机器,等于白扔钱。
这三个数不用买工具,云厂商后台就有现成的曲线图。你让托管方截最近三十天的给你看,一天都别落下,别只看昨天那一段。小陈那台 CPU 常年九成出头,看着挺吓人。后来查出来是一段死循环在空转,改了两行代码就下来了。我一开始也以为是配置的事,看久了才看出来。
分两次换比一次买顶配省
小陈隔年还是换机器了,不过是分两次换的。先升到四核八G,双十一前再把带宽从五兆提到十兆。这么换比一步到位买高配,省了差不多一千二。你要是一次买顶配,淡季那几个月钱就白躺在机房里。东山这边做水产的,旺季也就那么几个月,剩下时间机器闲得发慌。这事我跟他说过不止一回。
总结
所以你遇到高峰期卡死,先让人把慢的操作列出来,再决定加什么。我手上东山、漳浦这几个客户的机器,有一半是真不用换的。换之前先测,是我干了十年最想跟你说的一句。你要不放心,把后台峰值的时间点记上一周,拿来我帮你看看。这话不中听,但省钱。