Java 是否每隔20次呼叫临时增加前端到数据库的延迟约10秒?
这(见下图)发生于2007年3月。 当然,这可能是因为加载和卸载了实例。 但是你知道GAE这样做的其他原因吗 它不是高复制实例。在测试过程中,我们有多达5个实例在运行,只有我们的测试客户机调用。基本上有DB调用、图像处理和memcache使用 已经有两个问题看起来是相同的: 论坛上有一个条目: 日志记录(Shay请求)显示,持久性管理器似乎需要6秒钟来初始化:Java 是否每隔20次呼叫临时增加前端到数据库的延迟约10秒?,java,google-app-engine,Java,Google App Engine,这(见下图)发生于2007年3月。 当然,这可能是因为加载和卸载了实例。 但是你知道GAE这样做的其他原因吗 它不是高复制实例。在测试过程中,我们有多达5个实例在运行,只有我们的测试客户机调用。基本上有DB调用、图像处理和memcache使用 已经有两个问题看起来是相同的: 论坛上有一个条目: 日志记录(Shay请求)显示,持久性管理器似乎需要6秒钟来初始化: 2012-03-11 15:32:47.543 /api/yyy 200 16811ms 0kb xxx/1.1 CFNetwo
2012-03-11 15:32:47.543 /api/yyy 200 16811ms 0kb xxx/1.1 CFNetwork/548.1.4 Darwin/11.0.0
78.53.230.114 - - [11/Mar/2012:07:32:47 -0700] "POST /api/yyy HTTP/1.1" 200 94 - "zzz/1.1 CFNetwork/548.1.4 Darwin/11.0.0" "zzz.appspot.com" ms=16812 cpu_ms=6040 api_cpu_ms=82 cpm_usd=0.167820 pending_ms=5765 instance=00c71b117ca3858c47bdc41d5b30a732dd76eaaf
I 2012-03-11 15:32:37.196
www.server.xxxServlet getvvv: 1
I 2012-03-11 15:32:37.202
www.server.xxxServlet getvvv: hash
I 2012-03-11 15:32:37.207
www.server.xxxServlet getvvv: get PM (PersistenceManager pm = PMF.get().getPersistenceManager();)
I 2012-03-11 15:32:43.606
www.server.xxxServlet getvvv: get data
I 2012-03-11 15:32:47.355
www.server.xxxServlet getvvv: got data
I 2012-03-11 15:32:47.388
www.server.xxxServlet getvvv: done
PMF的实施方式如下:
public final class PMF {
private static final PersistenceManagerFactory pmfInstance =
JDOHelper.getPersistenceManagerFactory("transactions-optional");
private PMF() {}
public static PersistenceManagerFactory get() {
return pmfInstance;
}
}
您看不到任何统计信息的区域通常是您正在运行的代码,这些统计信息在输入请求时开始。我认为这与实例加载没有任何关系。
我建议添加日志以查看处理程序代码的流程。Ikai Lan在google-appengine.googlegroups.com论坛中回复: “鉴于SLA适用于HRD而非主/从应用程序,迁移到HRD肯定会获得更好的服务质量。事实上,我强烈建议您这样做。” “对于主/从应用程序,我们尽我们所能解决短期症状以及潜在的系统问题,而不影响服务,…” “我们可能会在不久的将来宣布维护,这将影响主/从应用程序的服务。” 链接:
对我来说,这意味着目前GAE主/从服务器存在问题,并且发布了维护公告。我在上面的问题中添加了一个关于持久性管理器的示例日志和信息。