2010-04-08 14 views
1

根据this discussion of Google App Engine on Hacker News如何确定App Engine数据库请求的可接受响应时间?

甲DB(读取)请求需要大于100ms的 数据存储。对于大约90%的应用程序,这是疯狂且无法使用的 。

您如何确定什么是DB读取请求的可接受响应时间?

我一直在使用App Engine时没有注意到数据库响应的任何问题。但另一方面,我不知道我甚至不知道在这方面要寻找什么:)

+1

将应用程序引擎数据存储与mysql或其他关系数据库进行比较时需要考虑的一件事是,无论您每秒钟有1次页面查看还是每秒1000次,应用程序引擎响应时间大致保持不变。关系数据库通常不是这种情况。 – 2010-04-08 18:55:04

+1

您提供的链接中的讨论已经有争议,海报说90%的应用需要100ms,但不提供更多信息。我认为这个问题是主观的和议论性的,所以我投票结束。 – OscarRyz 2010-04-08 19:28:00

+0

@彼得Recore:好点!这可能足以抵消部分高延迟。 – qiq 2010-04-08 21:15:44

回答

2

海报错了。数据存储获取操作要快得多 - 目前大约每个15-20毫秒。数据存储查询操作可能会比较慢,因为它们涉及更多且返回的数据更多,但对于典型查询,它们仍会在30-100ms内完成。其他海报已经充分解决了这是否“可以接受”。

+1

Datastore GET的状态页面似乎表明它们大约为50ms。 http://code.google.com/status/appengine/detail/datastore/2010/04/08#ae-trust-detail-datastore-get-latency – Tom 2010-04-09 13:26:59

+0

这里的测量值相对而言更有用 - '天气预报'类型的东西,而不是绝对的。典型的数据存储获取更多的在我指定的范围内。 – 2010-04-10 11:19:33

1

如果您没有发现任何问题,那么它在定义上是可接受的响应时间。唯一的问题是用户多长时间等待。

2

你的意思是可接受的?你在写什么类型的应用程序?对于不同的域/应用程序/人员,可接受意味着不同的事物。首先,您应该决定您的应用程序如何快速响应请求。我们选择1秒,只是为了论点。现在,您需要完成多少个数据库请求才能完成该请求?让我们说,让我们也说,我们也有400ms的其他处理值得做。好的,这是5个读取次数每个100ms,加上400ms的其他东西。总计900毫秒,这比我们1秒的目标少。完善! 100ms是可接受的读取速率。事实上,120ms仍然可以接受,只是几乎没有。

现在,让我们来概括:在你的号码

numberOfReads * readTime + otherStuffTime = TotalTime 

填充,你可以看到什么是您的具体情况在可接受的时间。

1

“数据库读取请求的可接受响应时间”完全取决于您的应用程序和用户。

如果最终结果是您的网站运行速度足以满足您和您的用户,那么Google在其AppEngine中提供的服务的响应速度慢是可以接受的。

现在,深入研究这个特定问题,听起来我们正在谈论GET。 Here是GET延迟的数字,在我看来,平均延迟更接近50ms,然后是100.我并不是说这很好,但我认为说100ms并不准确。

3

由于Guido van Rossum的AppStats相对较新的组件(它是1.3.1以来的标准SDK的一部分),您可以精确地测量每次RPC调用(数据存储或其他方式)所花费的时间。有关更多信息,请参阅here。对于大多数设计精良的应用程序来说,100毫秒就可以了 - 如果您需要进行两个或三个查询来为一个页面提供服务,即使涉及大量的处理和渲染,您仍然可以在不到半秒的时间内提供服务......不是太多破旧。另外,您可以使用memcache来减少很多这些延迟等。

相关问题