Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尽管定义了空闲实例,但前端实例仍在预热_Java_Google App Engine - Fatal编程技术网

Java 尽管定义了空闲实例,但前端实例仍在预热

Java 尽管定义了空闲实例,但前端实例仍在预热,java,google-app-engine,Java,Google App Engine,我有一个AppEngine应用程序,启用了计费功能。我还设置了1个空闲实例,并将挂起的延迟设置为500毫秒 问题是我得到了很多新的前端实例预热: 此请求导致为应用程序启动一个新进程,从而导致首次加载应用程序代码。因此,与应用程序的典型请求相比,此请求可能需要更长的时间并使用更多的CPU 这很令人惊讶,因为虽然我设置了一个空闲实例,但它通常发生在几分钟没有活动之后。即使设置了2个空闲实例,问题也没有解决 这给我们的客户带来了很多挫折。任何帮助都将不胜感激 谢谢, 吉拉德 编辑: 附加日志: 201

我有一个AppEngine应用程序,启用了计费功能。我还设置了1个空闲实例,并将挂起的延迟设置为500毫秒

问题是我得到了很多新的前端实例预热:

此请求导致为应用程序启动一个新进程,从而导致首次加载应用程序代码。因此,与应用程序的典型请求相比,此请求可能需要更长的时间并使用更多的CPU

这很令人惊讶,因为虽然我设置了一个空闲实例,但它通常发生在几分钟没有活动之后。即使设置了2个空闲实例,问题也没有解决

这给我们的客户带来了很多挫折。任何帮助都将不胜感激

谢谢, 吉拉德

编辑:

附加日志:

2013-01-29 15:00:09.569 /gwtRequest 200 1169ms 0kb Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17
I 2013-01-29 15:00:08.455 [s~my-appengine-app/5.364695570610280531].<stdout>: NamespaceFilter - namespace is: *******
I 2013-01-29 15:00:08.976 com.*.common.server.rf.LogServiceLayerDecorator invoke: Server RF: Calling functionB()
I 2013-01-29 15:00:08.985 com.*.common.server.apis.MyService functionB: MyService-functionB: statId: 95001; someBean-Id:950010000001666; someBean-o
I 2013-01-29 15:00:09.564 com.*.common.server.apis.MyService functionB: MyService-functionB-finish:
2013-01-29 15:00:08.198 /gwtRequest 200 15664ms 0kb Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17
I 2013-01-29 14:59:59.928 com.google.inject.internal.util.$FinalizableReferenceQueue$SystemLoader loadFinalizer: Not allowed to access system class loader.
I 2013-01-29 14:59:59.957 com.google.inject.internal.util.$FinalizableReferenceQueue <init>: Failed to start reference finalizer thread. Reference cleanup will only occur when
I 2013-01-29 15:00:03.164 [s~my-appengine-app/5.364695570610280531].<stdout>: TRACE: Manifest file jar:file:/base/data/home/apps/s~my-appengine-app/5.364695570610280531
I 2013-01-29 15:00:03.166 [s~my-appengine-app/5.364695570610280531].<stdout>: INFO : Hibernate Validator 4.1.0.Final at org.hibernate.validator.util.Version.(Version.java:
I 2013-01-29 15:00:03.194 [s~my-appengine-app/5.364695570610280531].<stdout>: DEBUG: Found javax.persistence.PersistenceUtil on classpath. at org.hibernate.validator.engin
I 2013-01-29 15:00:03.199 [s~my-appengine-app/5.364695570610280531].<stdout>: INFO : Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResol
I 2013-01-29 15:00:03.209 [s~my-appengine-app/5.364695570610280531].<stdout>: DEBUG: No META-INF/validation.xml found. Using annotation based configuration only at org.hib
I 2013-01-29 15:00:03.860 [s~my-appengine-app/5.364695570610280531].<stdout>: NamespaceFilter - namespace is: *******
I 2013-01-29 15:00:07.796 com.*.common.server.rf.LogServiceLayerDecorator invoke: Server RF: Calling functionA()
I 2013-01-29 15:00:07.967 com.*.common.server.apis.MyService functionA: MyService-functionA: amountInCents: 1100; Id:-1799069631; statId:95001
I 2013-01-29 15:00:08.197 This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This requ
2013-01-29 14:49:01.044 /gwtRequest 200 740ms 0kb Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17
I 2013-01-29 14:49:00.365 [s~my-appengine-app/5.364695570610280531].<stdout>: NamespaceFilter - namespace is: *******
I 2013-01-29 14:49:00.411 com.*.common.server.rf.LogServiceLayerDecorator invoke: Server RF: Calling functionB()
I 2013-01-29 14:49:00.425 com.*.common.server.apis.MyService functionB: MyService-functionB: statId: 95001; someBean-Id:950010000001665; someBean-o
I 2013-01-29 14:49:01.032 com.*.common.server.apis.MyService functionB: MyService-functionB-finish:
2013-01-29 15:00:09.569/gwtRequest 200 1169ms 0kb Mozilla/5.0(Windows NT 5.1)AppleWebKit/537.17(KHTML,像Gecko)Chrome/24.0.1312.56 Safari/537.17
I 2013-01-29 15:00:08.455[s~我的appengine应用程序/5.364695570610280531]:名称空间过滤器-名称空间是:*******
I 2013-01-29 15:00:08.976 com.*.common.server.rf.logservicelayercorator调用:server-rf:Calling functionB()
I 2013-01-29 15:00:08.985 com.*.common.server.api.MyService functionB:MyService functionB:statId:95001;someBean Id:950010000001666;豆豆
I 2013-01-29 15:00:09.564 com.*.common.server.api.MyService函数B:MyService函数B完成:
2013-01-29 15:00:08.198/gwtRequest 200 15664ms 0kb Mozilla/5.0(Windows NT 5.1)AppleWebKit/537.17(KHTML,类似Gecko)Chrome/24.0.1312.56 Safari/537.17
I 2013-01-29 14:59:59.928 com.google.inject.internal.util.$FinalizableReferenceQueue$SystemLoader loader终结器:不允许访问系统类加载器。
I 2013-01-29 14:59:59.957 com.google.inject.internal.util.$FinalizableReferenceQueue:无法启动引用终结器线程。引用清理仅在以下情况下发生:
I 2013-01-29 15:00:03.164[s~我的appengine应用程序/5.364695570610280531]:跟踪:清单文件jar:file:/base/data/home/apps/s~我的appengine应用程序/5.364695570610280531
I 2013-01-29 15:00:03.166[s~我的appengine应用程序/5.364695570610280531]:信息:Hibernate Validator 4.1.0.Final位于org.Hibernate.Validator.util.Version.(Version.java:
I 2013-01-29 15:00:03.194[我的appengine应用程序/5.364695570610280531]:调试:在类路径上找到javax.persistence.PersistenceUtil
I 2013-01-29 15:00:03.199[我的appengine应用程序/5.364695570610280531]:信息:实例化了org.hibernate.validator.engine.resolver.jpatransableresol的实例
I 2013-01-29 15:00:03.209[我的appengine应用程序/5.364695570610280531]:调试:未找到META-INF/validation.xml。仅在org.hib上使用基于注释的配置
I 2013-01-29 15:00:03.860[我的appengine应用程序/5.364695570610280531]:名称空间过滤器-名称空间是:*******
I 2013-01-29 15:00:07.796 com.*.common.server.rf.logservicelayercorator调用:server-rf:Calling function()
I 2013-01-29 15:00:07.967 com.*.common.server.api.MyService function:MyService function:amountancents:1100;Id:-1799069631;statId:95001
I 2013-01-29 15:00:08.197此请求导致为您的申请启动一个新流程,从而导致您的申请代码首次加载
2013-01-29 14:49:01.044/gwtRequest 200 740ms 0kb Mozilla/5.0(Windows NT 5.1)AppleWebKit/537.17(KHTML,类似Gecko)Chrome/24.0.1312.56 Safari/537.17
I 2013-01-29 14:49:00.365[s~我的appengine应用程序/5.364695570610280531]:名称空间过滤器-名称空间是:*******
I 2013-01-29 14:49:00.411 com.*.common.server.rf.logservicelayercorator调用:server-rf:Calling functionB()
I 2013-01-29 14:49:00.425 com.*.common.server.api.MyService函数b:MyService函数b:statId:95001;someBean Id:950010000001665;someBean-o
I 2013-01-29 14:49:01.032 com.*.common.server.api.MyService函数B:MyService函数B完成:
如你所见:

1) functionB()在14:49被调用

2) 大约10分钟内没有活动

3) function()在14:59:59被调用

4) function()导致生成新实例


5) 只有在对function()的调用结束时,才会调用对function()的下一次调用。将延迟设置为更高的数字,一旦idel实例为请求提供的服务时间超过您设置的延迟,将生成一个新实例


日志显示您有两个请求:一个花了740ms,另一个花了15.6秒,这意味着当740ms请求启动时,已经有一个请求处理(15.6秒)导致加载新实例。

谢谢Shay,但正如我提到的,我在几分钟没有任何活动之后得到了这个spawn,因此,我认为这不可能是由之前的长期请求引起的。如果我没有弄好,请随时纠正我:-)您应该能够在日志中看到传入的请求。找出哪些请求的时间大于500ms(不包括启动请求)。请记住,仅仅因为你的应用程序闲置了2分钟,并不意味着当有人点击它时,你几乎不会同时收到5个请求。还要检查实例正在使用的内存,如果您接近实例大小的限制,这也会导致按需实例启动。嘿@crazystick,这或多或少是Shay建议的,但我经历的情况是:1)一个常驻实例空闲运行10分钟。2) 第一个(也是唯一一个)请求到达服务器3)会生成一个新实例来处理此请求。@ShayErlichmen,15秒的请求在740ms请求结束10分钟后开始。它们是如何相互影响的?您的日志没有排序,因为它看起来像是在15000毫秒的请求进行中,最后一个请求花费了1169毫秒。