首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在为总计4330个请求提供服务后,已超过243 MB的软内存限制,其中307 MB。考虑在app.yaml中设置更大的实例类

在为总计4330个请求提供服务后,已超过243 MB的软内存限制,其中307 MB。考虑在app.yaml中设置更大的实例类
EN

Stack Overflow用户
提问于 2018-08-29 07:03:40
回答 1查看 2.5K关注 0票数 1

情况:

我的项目大多是自动化的任务。我的GAE (标准环境)应用程序有40个这样的crons作业,都在默认模块(前端)上运行:

代码语言:javascript
复制
- description: My cron job Nth
  url: /mycronjob_n/ ###### Please note n is the nth cron job. 
  schedule: every 1 minutes

每个cron作业

代码语言:javascript
复制
@app.route('/mycronjob_n/')
def mycronjob_n():

    for i in (0,100):
         pram = prams[i]
         options = TaskRetryOptions(task_retry_limit=0,task_age_limit=0)
         deferred.defer(mytask,pram)

mytask在哪里

代码语言:javascript
复制
def mytask(pram):
   #Do some loops, read and write datastore, call api, which I guesss taking less than 30 seconds.
   return 'Task finish'

问题:

作为问题的标题,我的RAM快用完了。前端实例小时数增加到100小时。

我的错误想法?

  1. 延迟任务在后台运行,因为它不是用户在访问网站时发送请求。
  2. 我把cronjobs_n分成几个不同的小任务,因为我认为这有助于减少每个cronjobs_n的运行时间,从而减少实例的内存consumption.

我的问题:(目的:尽量降低前端和后端实例的时长,我接受延迟)

  1. 是否将延迟任务计为请求?1分钟内我有多少个请求? mycronjob_n的
    • 40个请求或mycronjob_n的
    • 40个请求x 100 mytask = 4000

如果3-4个实例无法处理4000个请求,为什么GAE不再增加10 - 20个F1实例,然后在空闲时关闭?我在app.yaml中设置了自动缩放。我在这里看不到GAE自动缩放的含义。

  1. 优化我的应用程序的最佳方法是什么?如果将延迟任务算作请求,那么将mycronjob_n分成不同的小任务是没有意义的,对吧?我的意思是,我现在的方法是一样的:

@app.route('/mycronjob_n/') def mycronjob_n():

对于(0,100)中的i: pram = pramsi options = TaskRetryOptions(task_retry_limit=0,task_age_limit=0) mytask(pram) #调用函数mytask

在这里,我的应用程序是否每分钟有40个请求,每个请求运行100 x 30秒=3000秒?那么,这种方法是否也会返回内存不足呢?我是否应该创建一个在F1实例上运行后端服务,并将所有cron作业放在该后端服务上?我听说一个请求可以运行24小时。

  • 如果我将默认服务实例从F1更改为F2,F3,我还能获得28小时的免费服务吗?我听说免费层只适用于F1。如果我的后端服务在B2上运行,而不是在B1上运行,我的后端服务是否会获得9小时的免费服务?

我的遗憾:-我很遗憾我选择了GAE来做这个项目。我选择它是因为它有空闲层。但我意识到自由层只是出于兴趣/测试的目的。如果我运行一个真正的应用程序,成本会增加得非常快,这让我觉得GAE很昂贵。尽管我尽了最大努力优化数据存储的读/写,但它们的开销还是很大的。前端时间也总是很长。我每月为GAE支付40美元。每月40美元,如果我选择Heroku,Digital Ocean,也许我可以得到更好的服务器?你认为这样对吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52067297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档