秒杀系统的“三高”架构之--高性能
如何计算高性能指标?
性能也是影响用户体验的最重要因素之一。对于 ToC 的业务来说,如果请求超过 2 秒返回,会影响用户体验;如果在 5 秒内没有响应,用户可能就会离开。
那性能指标受哪些因素的影响呢?它的影响因素主要有:
用户网络环境
请求/返回数据大小
业务系统 CPU、内存、磁盘等性能
下游资源性能
算法实现是否高效
请求链路长短
怎么计算呢?举个例子,假设某秒杀系统的用户网络环境延迟 100ms,请求/返回数据处理为 10ms,业务服务内操作磁盘 30ms,业务服务请求下游资源 10ms,算法计算 5ms。我们把这些环节的延迟加起来,总共耗时将超过 155ms。
这个数值有什么意义?它说明,从用户发起请求到用户收到服务端返回的结果将超过 155ms。如果超过 150ms 会流失 10% 的用户,这可能是业务方不希望看到的,这个时候我们需要继续优化性能。
当然,不同并发压力下,请求延迟可能不同。通常来说,并发压力越大,平均请求延迟也越大。这好比排队买东西,排队的人越多,最后一个人买东西耗时越长。所以,我们在评估性能的时候,通常需要跟并发指标关联起来。例如,并发低于100万时,平均请求延迟不高于200ms。
通常,在实现完代码后,不一定确保性能满足要求,需要我们做大量的性能测试和性能调优来满足性能要求。