交易系统单服务器tps,性能优化那些事之一,TPS和延时

今年很重要的一项工作是交易系统的性能优化,做多了各种横向的业务扩展的项目,能有机会做一个性能优化的项目,而且挑战很大,还是有点小期待的。问题来了,怎么样才能算这个性能优化的项目执行成功了呢?需要可度量的指标,对交易系统而言,TPS和延时是大家常常讨论的两个指标,但是真的能把这两个指标解释清楚,特别是能把两者间的关系说清楚的人,好像还真不多。如果把这两者的关系想明白了,其实性能优化的思路也就容易理解了。

一、TPS(Transactions Per Second) 事务数/秒

TPS是软件测试结果的测量单位,一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。对交易系统而言,一般我们说每秒能处理多少个订单,那对应的就是TPS。

二、延时,也叫响应时间RT(Response Time)

延时是一个交易系统最重要的指标之一,它的数值大小直接反应了系统的快慢。响应时间是指执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。现在很多投资者开始做算法交易了,大家也越来越关心延时的指标了,时间就是金钱啊。

三、TPS和延时的关系

如果系统内部就是一个单模块,完全没有并发,那么TPS和延时的关系很简单,就是“TPS=1/延时”的关系。但是随着CPU处理性能的不断提升,流水线技术使得处理器可以同时执行多条指令;并行技术使得处理器可以同时执行多个任务,为上层应用的优化提供了更多的可能性。TPS和延时的关系就更加复杂了。

四、流水线和并行化对TPS的影响

流水线的TPS看这张图比较容易理解,这里要注意的是段的划分,每个段都是一个可独立运转的单元,多个段可以并行的工作。

0a65a3ec482e

TPS.jpg

上图是一个理想场景,每一段的执行时间相等,均为△t,那么k个△t完成第一个任务,即k*△t为装入时间,其余n-1个任务,每个△t完成一个任务,考虑到交易系统的性能都是很高的,一般是万级以上的,而k相对于TPS来说往往可以忽略不计,可以看成TPS = n/(n+k-1)△t = 1/△t

有了上面这张图,稍微扩展一下不难理解,如果每一段的执行时间不一致,那么TPS =1/△tmax

再扩展一下,如果执行时间最长的一段是可以m个单元并行处理的,那么可以认为这一段的延时就下降为△t/m,那么这是的TPS就是取决于下一个瓶颈单元了。

所以,如果要提升系统的TPS,就是要优化最长段的执行时间!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值