#杂
上一次谈了程序员这个职业给我的最大规训是“错误处理”,其实除此以外还有别的思维锻炼,打算逐个聊聊,今天聊“压力测试”。
做C端的同学可能不太了解“压力测试(benchmark)”的概念,简单做个说明。
比方一个服务在上线之前,业务的可用性(Availability)要求99%的请求都在10ms返回,这时候就需要测试这个服务在多大并发请求下能达到这个指标。
有了这个数据之后,根据估算出来的业务同时并发数量,可以来反推需要多少服务器才能满足前面的可用性指标。
这里只是最简单的介绍,实际上线时要考虑压力测试一般都是在理想情况下做出来的,另外还要给系统一定的冗余度(尽量不要刚好到水位的阈值),所以需要给前面的测试数据打一个折扣。
回到“压力测试”这个话题本身,给我最大的概念就是:(压力)测试环境才能更全面了解一个人(公司、组织)。
比如一个人会说一些很漂亮的话,可一旦面临一些压力,话和动作就会变形;
比如一些公司,说起“愿景”都是很漂亮的话,但是遇到营收压力的时候身体的动作才是最真实的;
比如建筑物,都会给出说明在怎样的压力下能保持多大的耐久度,等等。
简而言之,一个指标、承诺都不是凭空给出的,要看ta当时所处的压力测试环境,结合起来看才能更全面了解。
山本耀司有一段话:“自己”这个东西是看不见的,撞上一些别的什么,反弹回来,才会了解“自己”。 所以,跟很强的东西、可怕的东西、水准很高的东西相碰撞,然后才知道“自己”是什么。我觉得这句话就带有很浓的“压力测试”思维。
再比如,去年在线K12教育团灭,在这个“压力测试”背景下,俞敏洪及新东方的表现让我很意外,这个可能才是更接近于真实的。
“压力测试”给我的第二个规训,是看统计数字的时候不太看“平均值”这个指标,因为这个指标不能反映数据的分布,更好的是看比如“中位数”,即半数以上的数据都在哪个数据线之上,或者9成以上都在哪个数据线以上,这类指标更能反映数据的分布情况。
最后,尽管有压力测试才能更全面了解一个人,但是不建议“压力测试”用在考验人性身上,因为还有一句话:“人性经不起考验”,并不是所有时候都需要足够的理性、客观,有时候也需要“难得糊涂”,要不然活得太累了。
对自己来说,尽管“压力测试”下才能看到更接近于真实的表现,很多时候也不必为自己在压测下的表现感到过分沮丧,相信自己能随着环境、见识等等的变化,能一点一点进步的,一时的表现不能说明一切。
Post #358
2.21K