zoukankan      html  css  js  c++  java
  • 数据库读写分离的性能分析

    假设条件:

          读写操作次数的比例是1:9,读写操作代价是1:2;

          吞吐量为T(Throughput),单位是r/s,即每秒读写次数;  

     --------------------------------

    读写不分离时,即一台数据库情况下

           设每秒最大写次数是:w,则每秒最大读次数是R=9w

    此时:

           读操作的吞吐量:T读=9w [r/s]

           写操作的吞吐量:T写=2w [r/s]

           则单机系统最大负载能力:T单机=2w+9w=11w (r/s)

     --------------------------------

    采用一主多从结构后,master服务器只承担写和复制操作,slave服务器承担复制和读操作,设主服务器最大读写次数为w1,总共N台salve服务器,则所有slave服务器的最大读次数是Rs=9w1

           master服务器的吞吐量:   Tm=2*w1+N*w1=(N+2)*w1 (r/s)=T单机=11w  (N*w1为复制压力)

    Master服务器性能提升分析:

    由Tm/T单机=(N+2)*w1/11w=1

    可得:w1/w=11/(N+2) ,意思是master服务器上写操作次数与单机写操作次数的比例为:11/(N+2),

    设单个salve的最大读次数是Rs,则2*w1/N+Rs=11w,得Rs=11w-w1/N

    设整个集群的最大读次数是R集群,则R集群=Rs*N=(11w-2w1/N)*N,则R集群/R=11/9*N-2w1/(9w)

    当n=1时,写性能:w1/w= 3.67倍    读性能:R集群/R= 0.41倍 ,整体吞吐量:T集群/T单机=(2*3.67+0.41*9*n)/9=1.22

    当n=2时,写性能:w1/w=2.75倍,    读性能:R集群/R= 1.83倍 ,整体吞吐量:T集群/T单机=(2*2.75+1.83*9*n)/9=4.28

    当n=3时,写性能:w1/w=2.20倍     读性能:R集群/R= 3.18倍 ,整体吞吐量:T集群/T单机=(2*2.2+3.18*9*n)/9=10.22

    当n=4时,写性能:w1/w=1.83倍     读性能:R集群/R= 4.48倍 ,整体吞吐量:T集群/T单机=(2*1.83+4.48*9*n)/9=18.33

    当n=5时,写性能:w1/w=1.57倍     读性能:R集群/R= 5.76倍 ,整体吞吐量:T集群/T单机=(2*1.57+5.76*9*n)/9=29.15

    综上,由于存在复制压力,随着N的增长,master性能提升效果在降低,而slave和整体吞吐量的性能提升在增长。

  • 相关阅读:
    [bzoj4239]巴士走读
    [bzoj1146]网络管理
    [luogu3292]幸运数字
    [51nod1597]有限背包计数问题
    [bzoj2654]tree
    [bzoj2668]交换棋子
    [bzoj3173]最长上升子序列
    [hdu6715]算术
    [bzoj3784]树上的路径
    [bzoj1221]软件开发
  • 原文地址:https://www.cnblogs.com/mysqlcluster/p/2033468.html
Copyright © 2011-2022 走看看