分布式系统的三围指标:
1.性能:
1.1吞吐量指标:(系统在一定时间内可以处理的任务数)
1.1.1:QPS (Queries Per Second):
即每秒查询数,用于衡量一个系统每秒可以处理多少个任务数。
这个指标通常用于读操作,越高说明对读操作的支持越好。所以,我们在设计一个分布式系统的时候,如果应用主要是读操作,那么需要重点考虑如何提高 QPS,来支持高频的读操作。
1.1.2:TPS(Transactions Per Second):
即事务数每秒,用于衡量一个系统每秒可以处理的事务数。
这个指标通常对应于写操作,越高说明对写操作的支持越好。我们在设计一个分布式系统的时候,如果应用主要是写操作,那么需要重点考虑如何提高 TPS,来支持高频写操作。
1.1.3:BPS(Bits Per Second):
比特数每秒,用于衡量一个系统每秒可以处理的数据量。
对于一些网络系统、数据管理系统,我们不能简单地按照请求数或事务数来衡量其性能。因为请求与请求、事务与事务之间也存在着很大的差异,比方说,有的事务大需要写入更多的数据。那么在这种情况下,BPS 更能客观地反应系统的吞吐量。
1.2 响应时间(Response time):
o 指的是 ,系统响应一个请求或者输入需要花费的时间。
o 响应时间直接影响到用户体验,对于时延敏感的业务非常重要。比如用户搜索导航,特别是用户边开车边搜索的时候,如果响应时间很长,就会直接导致用户走错路。
1.3 完成时间(Turnaround Time):
o 系统完成一个请求或者处理需要花费的时间。
o 任务并行(也叫作任务分布式)模式出现的其中一个目的,就是缩短整个任务的完成时间。特别是需要计算海量数据或处理大规模任务时,用户对完成时间的感受非常明显。
2.资源占用:
2.1 空载资源占用:
2.2 满载资源占用:
3.可用性:
• 系统停止服务的时间与总的时间之比衡量
• 某功能的失败次数与总的请求次数之比来衡量
o ,比如对网站请求 1000 次,其中有 10 次请求失败,那么可用性就是 99%。
4.可扩展性:
• 当任务的需求随着具体业务不断提高时,除了升级系统的性能做垂直 / 纵向扩展外,另一个做法就是通过增加机器的方式去水平 / 横向扩展系统规模。