「你们托管一年好几千,我自己办公室拉条宽带,服务器搁屋里,一年宽带的钱都用不完。」

老周是三月中旬给我打的电话,具体哪天记不清了,反正那阵子刚过完年,他那边发货还没完全忙起来。做的是小电商,办公室租在居民楼底商,白天五六个人打包贴单,灯和空调基本不关,他就觉得,机房无非也就是个有电有网的地方。

我在电话里跟他掰扯了差不多二十分钟。我说托管那点钱买的不是一格柜子,是双路市电、UPS、精密空调、消防,还有 24 小时值守和一条正经 BGP 带宽。他听了半天回一句:你这就是吓唬我,我这办公室又不跳闸。

话说到这份上我也没再拦。做服务的,客户觉得能省的钱你不让省,反倒像急着赚他钱。三月底他真把服务器拉走了,一台二手淘来的 Dell R730,装的 Windows Server 2019,上面跑着他那套电商后台,MySQL 5.7,还有一个自己人写的订单统计小工具。走之前我帮他把数据备份拷了一份,顺嘴提了一句:公网 IP 会变,域名解析记得盯着点。他嗯嗯啊啊,我知道他没往心里去。

搬回去头一个月倒是挺好。他办公室那条电信宽带,下行 500 兆,测速发我截图,挺得意。我看了眼上行,32 兆——心里咯噔一下,但没说什么,他就一个后台,白天几个人用,撑得住。

问题出在第二个月。

先是五月初,他说「网站偶尔打不开,刷新两下又好了」。我远程连过去看,那会儿还是通的。查了两天,我一开始怀疑是他宽带被运营商限速,又怀疑被人扫端口,还去问了他家那个光猫——华为的 HG8145V5,运营商送的那种——端口映射有没有动过。都没问题。后来有天他发我一张 nslookup 截图,域名解析出来的 IP,跟他服务器现在的公网 IP 对不上。哦……他家是 PPPoE 拨号,光猫重启一次,公网 IP 就换一个。他自己装了个花生壳免费版想自动更新解析,结果免费版那点更新频率,加上光猫后头还套了层路由(他办公室另一个路由器在拨号,光猫是桥接),花生壳抓到的压根不是真正的出口 IP。他「偶尔打不开」,就是解析还没来得及更新那段时间。

这个我给他换了付费版 DDNS 客户端,算是压下去了。现在回头看,这是最小的一件事。

夏天才是正主。办公室那个屋朝西,下午西晒,加上五六个人和一堆打包的纸箱,他那台服务器就搁在角落一张桌子上,离地面不到半米。六月底一场热,他下午两点多给我打电话,说后台老是卡。我让他装个看温度的软件(Windows 上我让他装的 HWiNFO64),截图过来,CPU 包温度 78 度,风扇转速已经拉满。R730 这种机架机器在机房里二十来度的地方待惯了,你让它在一个下午三十几度的屋里干活,风扇叫得跟吹风机似的。更要命的是他下班锁门关空调——晚上那屋能到三十八度往上。

我跟他讲这样下去硬盘先坏。他说没事,晚上没人用,卡就卡点。

然后是七月中旬那个电话,晚上九点四十多。

「服务器起不来了,我微信发你照片,你帮我看一眼。」

他发过来的,是一张开机画面卡住的照片。我远程进不去,只能让他拍照、按屏幕提示一步步试。折腾到十点多我大概判断是断电导致的非正常关机:开机日志里,事件 ID 41(Kernel-Power),还有一条 6008——系统上次关机是意外的。他说下午楼下装修,电闸跳了一次,他回来才合上。

服务器是起来了,但 MySQL 服务起不来。错误日志里一行:

[ERROR] Table './shop_db/orders' is marked as crashed and should be repaired

MyISAM 的表,断电的时候正在写,表文件弄坏了。我让他把远程桌面开起来,我这边 myisamchk 一个一个表过,修了四个多小时,大部分表救回来了,订单表里有两天的记录不对——他后台统计少了两百六十多单,具体数我现在也记不准了,反正那天他脸是绿的。这两百多单后面是靠支付流水和快递底单一点点对回来的,熬了他两个晚上。

这中间其实我还走了个弯路。一开始我以为是他 MySQL 的刷盘参数没调好,想给他改 my.ini,翻进去才发现订单表压根还是 MyISAM,根本没上 InnoDB。这年头还有人在生产上跑 MyISAM,我是真没想到。跟他说换成 InnoDB 要迁移数据,他又嫌麻烦,那是后话了。

对了,还有件小事。他那办公室在居民楼底商,楼上就是住户,R730 那风扇一到夏天晚上呜呜的,被楼上邻居投诉过一回,物业还上门看过。他跟我提这事的时候还在笑,我一点笑不出来——你把机房的机器搬进居民楼,噪音、灰尘、供电、温度,一样都躲不掉。

八月底他给我打电话,问我们托管还有没有位置。

后面就简单了,服务器拉回来,重新上台架。我把他家里那套花生壳、DDNS 全停了,域名解析指回机房。他那台 R730 进机房之后,我特意盯着温度看了两天,进风口 21 度,CPU 包温没到 50 度,风扇安安静静。老周头一天来站在机柜前面听,说了句「原来能这么静」——他之前大概一直以为服务器就该那么吵。

托管费他这回没再砍价。我也没提当初劝他那二十分钟,提这个没意思。人家后来自己算明白了:省下的那几千,搭进去 MyISAM 修表那两晚、丢的两百多单,还有楼上邻居那回投诉,怎么算都是亏的。就是绕了一大圈,服务器还是回了机房,这折腾的,图啥呢。

——对了,平时同时盯着两百多台机器,光来回连就够烦的。我批量管机器用的是自家那个免费的 七亿批量远程管理工具,RDP 九宫格、SSH 终端、SFTP 都塞在一个窗口里,省得在好几个客户端之间切来切去。