分布式技术的提出,旨在使用廉价且大量的机器来代替单一的机器,来处理复杂的问题。为了更好地衡量一个分布式系统, 我们会使用一些指标来进行度量。其中,较为重要的有性能、资源、可用性和可扩展性。
性能
性能,主要用于衡量一个系统处理各种任务的能力。 常见的性能指标,包括吞吐量(Throughput)、响应时间(Response Time)和完成时间(Turnaround Time)。 吞吐量指的是,系统在一定时间内可以处理的任务数。常见的吞吐量指标有 QPS(Queries Per Second)、TPS(Transactions Per Second)和 BPS(Bits Per Second)。
- QPS,即查询数每秒,用于衡量一个系统每秒处理的查询数。这个指标通常用于读操作,越高说明对读操作的支持越好。
- TPS,即事务数每秒,用于衡量一个系统每秒处理的事务数。这个指标通常对应于写操作,越高说明对写操作的支持越好。
- BPS,即比特数每秒,用于衡量一个系统每秒处理的数据量。
响应时间指的是,系统响应一个请求或输入需要花费的时间。 完成时间指的是,系统真正完成一个请求或处理需要花费的时间。
资源占用(Resource Usage)
资源占用指的是,一个系统提供正常能力需要占用的硬件资源,比如 CPU、内存、硬盘等。 一个系统在没有任何负载时的资源占用,叫做空载资源占用,体现了这个系统自身的资源占用情况。 一个系统满额负载时的资源占用,叫做满载资源占用,体现了这个系统全力运行时占用资源的情况,也体现了系统的处理能力。
可用性(Availability)
可用性,通常指的是系统在面对各种异常时可以正确提供服务的能力。 系统的可用性可以用系统停止服务的时间与总的时间之比衡量,也可以使用某功能的失败次数与总的请求次数之比来衡量。
可扩展性(Scalability)
可扩展性,指的是分布式系统通过扩展集群机器规模提高系统性能 (吞吐量、响应时间、 完成时间)、存储容量、计算能力的特性,是分布式系统的特有性质。
当任务的需求随着具体业务不断提高时,除了升级系统的性能做垂直 / 纵向扩展外,另一个做法就是通过增加机器的方式去水平 / 横向扩展系统规模。
衡量系统可扩展性的常见指标是加速比(Speedup),也就是一个系统进行扩展后相对扩展前的性能提升。