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和整体吞吐量的性能提升在增长。

  • 相关阅读:
    js中的原生Ajax和JQuery中的Ajax
    this的用法
    static的特性
    时政20180807
    java compiler没有1.8怎么办
    Description Resource Path Location Type Java compiler level does not match the version of the installed Java project facet Unknown Faceted Project Problem (Java Version Mismatch)
    分词器
    [数算]有一个工程甲、乙、丙单独做,分别要48天、72天、96天完成
    一点感想
    解析Excel文件 Apache POI框架使用
  • 原文地址:https://www.cnblogs.com/mysqlcluster/p/2033468.html
Copyright © 2011-2022 走看看