Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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
Php 应用程序引擎实例峰值_Php_Google App Engine_Google Cloud Sql - Fatal编程技术网

Php 应用程序引擎实例峰值

Php 应用程序引擎实例峰值,php,google-app-engine,google-cloud-sql,Php,Google App Engine,Google Cloud Sql,我使用GAE自动缩放,运行php55。这也发生在php5上。设置: automatic_scaling: min_idle_instances: 0 max_idle_instances: 2 # default value min_pending_latency: 500ms max_pending_latency: 7000ms 我很难理解为什么会出现这些尖峰。通常,我的应用程序要求一次运行的实例不超过5个。偶尔,这会毫无明显原因地跳到1200+。围绕此时间的日志显示所有

我使用GAE自动缩放,运行php55。这也发生在php5上。设置:

automatic_scaling:
  min_idle_instances: 0
  max_idle_instances: 2  # default value
  min_pending_latency: 500ms
  max_pending_latency: 7000ms
我很难理解为什么会出现这些尖峰。通常,我的应用程序要求一次运行的实例不超过5个。偶尔,这会毫无明显原因地跳到1200+。围绕此时间的日志显示所有非静态内容的500个超时错误

这些页面上唯一的依赖项是简单的数据库插入。我正在使用谷歌云SQL。云SQL日志中也没有报告错误


关于如何进一步解决这个问题有什么想法吗?从图中可以看出,这个问题非常零散,但代价极高

这是因为数据库在短时间不活动后关闭。当流量恢复时,需要时间重新启动数据库服务器。在此期间,AppEngine认为需要创建更多的实例来跟上繁重的负载


我通过让我的数据库实例“始终打开”来解决这个问题。

您有500错误的确切日志条目吗?@Mars在此时间范围内的每个请求都是“请求在100秒后超时”500错误。可能是云SQL请求超时了?向GAE发出的每个前端请求必须在60秒内完成。您可能希望将长时间运行的操作推迟到taskqueue:@Mars,谢谢您的回复。不幸的是,这一工作单元不能推迟。我确实遇到过另一篇文章,建议将云sql实例保持为“始终打开”。希望这会有所不同。再次感谢您。与web上的任何其他资源一样,数据库也会下降,也许您应该在设计应用程序时处理这种情况。此外,在app.yaml中还有一个max_concurrent_requests设置,您可以对其进行调整,例如,如果是10,并且有10个进程等待数据库IO,则appengine将生成新实例,即使第一个实例的CPU使用率为零。我会将其调整到尽可能高的水平。@LawrenceMok,小心这种方法,每个应用引擎实例最多只能有12个数据库连接。之后的任何操作都会导致数据库连接失败。