5

我们对 gae go 的体验很糟糕。当我们的应用程序是免费应用程序时,我们从来没有遇到过Exceeded soft private memory limit的问题。我们超过了配额,因此我们决定付款。我们的每日预算设置为 3 美元。激活付费服务后,我们可以再次使用该站点,并且超出配额的情况消失了。几个小时后,我们得到了超过软私有内存限制,除此之外什么都看不到。我试图清除数据存储中的一些大数据,禁用内置插件,但仍然没有运气。

我在代码中做了一些测试,以确定故障的来源。删除数据存储访问代码,使站点再次启动。所以我的结论是访问数据存储即使只是为了获取很少的实体也会引发这样的错误。我们有点绝望了。我们选择使用 apppot 来利用该技术,但我们得到了这个,因为我们无法继续进行开发。

以下只是引发此类错误的代码。

q := datastore.NewQuery("Course")
    courses := make([]courseData, 0)
    if keys, err := q.GetAll(c, &courses); err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    } else {
      for i := range courses {                 
          courses[i].Key = keys[i]
      }                           
    }

您可以向我们提供的任何帮助将不胜感激。先感谢您。

4

1 回答 1

3

根据我的经验,此消息通常意味着您的实例使用的内存比您的实例类支持的更多。如果您开始收到此消息,请升级到下一个实例类(F2 等)并查看它是否消失。这是您在模块配置文件中所做的更改(以前位于管理控制台的应用程序设置部分)。问题很可能会消失,除非您使用的内存比下一个类可以支持的更多。

与自动扩展到您的预算限制的其他资源不同,RAM 不是;如果请求导致实例超出其实例类的 RAM 限制,则实例将在请求结束时终止并记录此消息。

于 2013-04-07T21:53:01.623 回答