先跟你说个事儿,前两天我一朋友兴冲冲买了个某大厂的“高性能云服务器”,号称99.99%可用性,结果部署上去第三天下午,业务直接瘫了半小时,他在群里发语音骂街的时候,我默默打开了自己的测试脚本——早就想看看这帮“99.99%”到底有多少水分。
说实话,这类宣传语我看了十年了,就跟街边“最后三天清仓大甩卖”一样,你信了就输了。
测试咋搞的?
花了3天测了7台国内服务器,结果让我想骂人
我选了7台主流厂商的入门级云服务器,配置统一:2核4G、40G系统盘、5M带宽,为了避免地域偏差,全部选的华东节点(上海或杭州),系统都是CentOS 7.9 64位,工具方面,用了性能测试圈子里口碑还算靠谱的那几样:iperf3跑带宽和吞吐,hcping测延迟抖动,fio测磁盘,wrk压一下Web响应,每台机器连续跑了72小时,每小时采样一次,数据取中位数和P99(第99百分位),因为平均延迟这种东西骗外行可以,骗不了搞技术的。
实测数据来了,你坐稳。
先说延迟,A厂测出来平均延迟3.2ms,P99也不过5.1ms,稳得一批,B厂平均3.8ms,但P99直接跳到12.4ms——什么意思?就是大部分时间挺好,但你在关键请求的时候有概率抽风,C厂更离谱,平均5.6ms看起来还行,结果P99干到28ms,我怀疑这机房是不是部分机器在跑P2P下载。
带宽这块更搞笑了,我买的都是5Mbps的套餐,A厂和D厂基本能跑到4.8M-4.9M,算良心,但E厂死活只能跑到3.1M,而且晚上高峰时段掉到2.5M以下,客服还跟我说“这是共享带宽的正常波动”,我直接怼回去:你卖的时候可没说是共享,你一入门机也不是共享机型的定价啊。
吞吐量用小包测试(64字节),F厂直接暴露出短板,每秒只能处理大概1.2万个包,其他厂普遍在2.5万到3万之间,这意味着什么?如果你的业务有大量小请求——比如API网关、消息队列、心跳检测——F厂这台机器很快就会成为瓶颈,大包测试(1400字节)各家差异倒不大,基本都能跑到带宽上限,毕竟现在的虚拟化技术处理大包都不算吃力。
磁盘IOPS呢?意外的是,一向口碑不错的G厂翻车了,4K随机写只有1800 IOPS,读取还凑合,但写入严重拉胯,后来查了一下,他们入门级用的是HDD缓存,不是全SSD,宣传页面上也没明说,只有技术文档里写了个“混合存储”,呵呵,你品。
对比一下就知道了。
我拿A厂和F厂做直接对照:同样的Web应用压测,100并发下,A厂的平均响应时间是42ms,P99是78ms,全程没有出现过502或超时,F厂平均响应时间68ms,看起来还行对吧?但P99直接飙到312ms,而且20分钟里出现了3次连接超时,你要是做个企业官网,凑合用;你要是做电商秒杀或者实时数据推送,这个P99就是灾难。
E厂我单独拉出来说,因为它的问题不是性能拉胯,而是间歇性丢包,72小时里检测到7次超过5秒的持续丢包,最长一次持续了23秒,客服的解释是“机房网络维护”,但你们家99.99%的可用性可是把停机维护也算在可用时间里的——换句话说,用户宕机算你宕机,你自己维护宕机还算你可用?
最后说人话总结。
如果你预算有限但追求稳定——闭眼选A厂,价格不是最低的,但延迟、带宽、一致性各方面没有明显短板,适合小企业的核心业务。
如果你是个人项目、折腾着玩——C厂或D厂性价比很高,但别部署高并发或实时性敏感的服务,写个博客、跑个图床没问题。
如果你听哪个销售吹“我们99.99%”的——让他把P99数据亮出来,99.99%说的是整个集群的可用性,跟你买的这台机器半毛钱关系没有,你的业务可能常年运行在那20%平均线以下的机器上,销售可不会告诉你这事儿。
别问我为什么知道这些厂商的名字,我只能说,这三天的测试数据里,有一半厂商,我建议你把“可用性”三个字从宣传页上删掉——不丢人,踏踏实实把机器搞好比什么都有用。



发表评论