解析有多少并发用户可以服务?

时间:2015-07-24 11:26:59

标签: parse-platform scalability

我正在解析。我想知道解析的可扩展性。 我知道它每秒提供30个请求。但实际上有多少并发用户可以访问解析? 我知道不同的应用程序提供不同的请求率,这也取决于用户的使用模式。但是,假设我们有一个献血活动的应用程序,那么我们可以从解析中获得什么样的可扩展性?

1 个答案:

答案 0 :(得分:0)

parse.com免费套餐的确限制为30 req / s。

如何转换为多个用户,取决于两个因素:

  • 每个应用每天要做多少次请求?
  • 交通有多突发?

第一个因素完全取决于您的应用。一些应用程序"打电话回家"所有的时间(也经常来自后面的服务)。其他应用程序只会偶尔连接并下载一堆将持续很长时间的内容。您的应用的行为方式取决于消息量,延迟要求以及您的服务是否足够智能以将待处理消息合并到单个请求中。作为应用程序开发人员,您是唯一能够提出合理估算的人。

对于第二个因素(突发性),我可以通过假设Poisson distribution请求来粗略猜测。

这是一个简单的python脚本,可以深入了解泊松概率函数:

import math

def poisson_probability(nr_devs, device_rps, total_rps):
    # Returns the probability of total_rps requests per second, 
    # assuming nr_devs devices, each making device_rps (mean)
    l = math.ceil(nr_devs * device_rps)
    return (l ** total_rps) * math.exp(-1 * l) / math.factorial(total_rps)

def cumulative_poisson_probability(nr_devs, device_rps, cutoff_probability=0.999999):
    c = 0.0
    for i in xrange(1000):
        p = poisson_probability(nr_devs, device_rps, i)
        c += p
        print "RPS: %d\tprobability: %1.6f\tcumulative: %1.6f" % (i, p, c)
        if c > cutoff_probability:
            break

让我们尝试100k设备,平均每2小时生成一个请求:

>>> cumulative_poisson_probability(100000, 1.0/7200.0)

...
RPS: 26 probability: 0.001299   cumulative: 0.998691
...
RPS: 35 probability: 0.000001   cumulative: 0.999999

使用这些数字,您在任何给定秒内获得最多26个请求的概率为99.9%,在任何给定秒数内获得最多35个请求的概率为99.9999%。

这意味着你每1000秒(约20分钟)大约会超过26 rps,而在一百万秒(~11天)内会超过35 rps。