Appengine前端实例一直在使用越来越多的RAM,我该如何减少这个?

时间:2016-08-11 21:44:14

标签: google-app-engine

我的实例现在全部从140米开始,平均只有不到200.如果离开的时间足够长,他们开始达到240米。但是我的问题更多的是关于在启动新实例后正在使用的内存。我没有在实例上存储任何内容。每个请求都从内存缓存和数据存储中提取内容,而且我不使用单例。

我所拥有的只是与实例一起部署的类和大量静态资源。我广泛使用JSP(如果这有所不同)。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我从内存开始,因为我已经在App Engine上使用Java几年了。这可能是陈旧的。

JVM不想释放内存。如果创建实例并为请求提供服务,则内存水印会上升。垃圾收集可以免费提供。从它可以重用的意义上说,这部分内存是存储器的,但是进程内存的高水位并不一定会下降。后续请求可能需要不作为空闲块的分配,因此内存上的水印再次上升。如果应用程序未配置为同时提供多个请求,则内存使用遵循类似S形曲线的内容。如果同时处理多个请求,则会进一步提高水印。

也就是说,意外内存增长的一个常见原因是查询检索的行数多于必要的行数,并在应用程序中进行过滤。

但没有更多信息,您的具体案例无法诊断。

答案 1 :(得分:0)

我相信我弄明白为什么我的项目占用了越来越多的公羊。我的项目中碰巧有很多静态资源,看起来这些静态资源都被加载到前端实例内存中(可能是为了加速)。我设法通过从主应用程序服务器移动静态资源来释放大量内存。