AppEngine上的随机500错误

时间:2013-03-12 18:37:23

标签: google-app-engine

我有一个相当大的应用程序,经历了一次重大改革。

较新版本使用了大量JSONP调用,我注意到500个服务器错误。日志部分中未记录任何内容以确定错误原因。它发生在JS,png甚至是jersey(servlets)上。

搜索SO和组建议在部署期间这些错误很常见。但即使在部署后数小时,它也会发生。

顺便说一句,应用程序已经变得稍大,它甚至会导致截止日期异常,而在极少数情况下启动少数实例。有时,它开始&服务时间在6-10秒之内。有时它会超过75秒,从而导致类似请求超时。我也看到了热身请求的相同行为。在应用程序预热期间没有加载任何自定义。

3 个答案:

答案 0 :(得分:0)

我觉得您应该看到日志中的错误。您是否超过配额或有截止日期错误?也许您的错误处理程序中有错误,例如找不到文件,或者错误处理程序的路径与另一个静态文件路由重叠?

要进行问题排查,我会实施custom error pages,以便您确定实际的错误代码。因为你从未指定过你使用的语言,所以我假设是Python。将以下内容添加到app.yaml并创建静态html页面,以便让收件人知道发生了什么,然后报告您的发现:

error_handlers:
  - file: default_error.html
  - error_code: over_quota
    file: over_quota.html
  - error_code: dos_api_denial
    file: dos_api_denial.html
  - error_code: timeout
    file: timeout.html

如果您已有自定义错误处理程序,是否可以提供部分app.yaml以便我们为您提供帮助?

答案 1 :(得分:0)

您的应用程序日志中未记录大约500个。它们是GAE前端的失败。如果出于某种原因,您的请求数量激增,并且您的应用程序的新实例无法以足够快的速度启动以满足这些请求,那么即使应用程序的日志中没有出现这些500个,您的客户端也可能会看到500个。 GAE团队正致力于提供对这些前端日志的可见性。

答案 2 :(得分:0)

我自己刚看到这个......我正在研究一些访问者的日志,这些访问者只在页面上加载了一半的图形文件。我尝试点击他们访问我们网站的博客上的相同链接。就我而言,我在Chrome浏览器开发者控制台中看到了一个js文件的500错误。然而,当我查看GAE日志时,它表示它以200状态正确地提供了文件。那个js文件加载了其他没有的图像。就我而言,这是一个https请求。

了解我们的客户体验非常重要(显然)。我想告诉你这个问题仍在发生。只是让它出现在日志中会很棒,甚至会附加一个热身错误或其他东西,所以我们知道这是一个复杂的服务器系统不可避免的人工制品(完全可以理解)。我只需要知道是否应该添加实例或其他内容。此错误没有等待60秒,也许是5到10秒。这就像SSL握手的往返中途失败,但是日志显示它是成功的。

那么我可以增加握手的超时时间,还是在浏览器端完成?