英文:
Golang AppEngine memcache deadline exceeded
问题
我有一个使用任务队列在并行中运行蒙特卡洛风格模拟的Golang AppEngine应用程序,并且大量使用memcache来存储中间结果。对于小量的进程/任务(<100),一切正常,但是我发现在大量进程/任务(>1000)时,我经常无法从memcache中读取或更新中间数据,出现错误“已取消:超过截止时间”。这似乎发生在初始化任务后的7-10秒钟。特别是memcache.JSON.Get和memcache.IncrementExisting似乎是罪魁祸首。我是否可能以某种方式过载了memcache?
英文:
I have a golang AppEngine application which runs a Monte Carlo- style simulation in parallel using the task queue, and makes heavy uses of memcache to store intermediate results. Everything works fine for small numbers of processes/tasks (< 100), but I'm finding that at large numbers (> 1000) I get a lot of failures to read or update intermediate data from memcache, with the error 'Canceled: Deadline exceeded'. This seems to happen 7-10 seconds after initialising a task. Particular offenders seem to be memcache.JSON.Get and memcache.IncrementExisting. Is it possible I'm overloading memcache somehow ?
答案1
得分: 1
问题 6519 可能是相关的
> 如果你启用了 appestats,并且 memcache 的日志超过了 1mb,就会出现“堆溢出”错误,然后所有后续的 memcache 设置/获取/管理调用都会失败。实例上传“修复”了这个问题,但只是暂时的。我禁用了 appestats 来更加永久地解决这个问题。
英文:
Issue 6519 might be relevant
> If you have appestats enabled, and the memcache logging exceeds 1mb,
> it gets a "out of heap" error and then all subsequent memcache
> sets/gets/admin calls fail. Instance upload "fixes" the problem
> temporarily. I disabled appestats to fix the problem more
> permanently.
答案2
得分: 0
似乎这与底层的AppEngine基础设施问题有关(现已解决)
英文:
Seems this was related to an underlying AppEngine infrastructure problem (now resolved)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论