Python memcached在运行一段时间后失败

Python memcached在运行一段时间后失败,python,django,docker,memcached,Python,Django,Docker,Memcached,我将Django与memcached一起使用,请求量比较大。 起初,memcached工作正常,但过了一段时间后,它开始不时出现错误。错误消息也不一致。在花了很多时间之后,我甚至不知道错误的确切含义,也不知道如何解决它 设置: Django+默认memcached后端 memcached是使用Docker启动的: docker up-d memcached-m 3072m-I 10m-c 4096 memcached使用自己的专用主机 主机规格:4 CPU+3.5GB ram 交换性=0 在谷

我将Django与memcached一起使用,请求量比较大。 起初,memcached工作正常,但过了一段时间后,它开始不时出现错误。错误消息也不一致。在花了很多时间之后,我甚至不知道错误的确切含义,也不知道如何解决它

设置:

  • Django+默认memcached后端
  • memcached是使用Docker启动的:
    docker up-d memcached-m 3072m-I 10m-c 4096
  • memcached使用自己的专用主机
  • 主机规格:4 CPU+3.5GB ram
  • 交换性=0
  • 在谷歌计算引擎上运行
统计数据

不同的错误消息

Exception Value: error 31 from memcached_get(:1:a7735b06da00d2e6991920299c31): (14006136669712) A TIMEOUT OCCURRED, host: 10.140.0.16:11211 -> libmemcached/get.cc:314

error 37 from memcached_set: SUCCESS

error 47 from memcached_get(:1:throttle_naive_9885206_None_): (140085126390144) SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY, host: 10.140.0.16:11211 -> libmemcached/get.cc:314

  • 在所有情况下,memcached docker似乎仍然可以正常工作
    stats
    仍然有效,并非所有请求都会生成错误
  • memcached主机的CPU使用率仅为1%左右
  • 以前,当memcached实例与前端服务位于同一主机上时,我也会遇到同样的问题。然而,同样的问题

编辑:由于我无法解决这个问题,我在同一台主机上切换到Redis。虽然我第一次没有弄好,但Redis提供了全面的错误消息,因此我可以轻松地解决它们。现在,我的缓存运行稳定。

这是一个残酷的建议,但我要问一下——你有没有看过memcached代码(至少是文档)?难道不能简单地缓存未命中的第一名吗?。似乎不是这样,但是…Docker确实每隔一次更新就为我提供几个小时的娱乐。追溯最新的更新,看看发生了什么变化,可能会给你一些提示,是的,我也这么做了。我已经搜索了源代码和文档。找到了多个有关如何设置的文档,以及源代码中的错误代码表。然而,我很难理解错误消息在说“成功”之类的话时的含义。缓存未命中不会引发错误,但只返回None。请注意,在运行一段时间之前,它不会引发错误。我使用最新的官方docker图像。如果您能提供更多信息,我们将不胜感激。至于我,您应该继续检查(分析)特定错误代码的代码(如您的报告中的37、47)。减少到一些可重复的测试用例,同时看起来您的网络(或运行memcached的主机)有一些严重错误。。。但目前还不能说出确切的原因。对不起,我不能给你更好的建议,至少在这种情况下我会遵循这个向量。提到查看系统日志是很明显的,我想这是一个残酷的建议,但我要问一下——您有没有看过memcached代码(至少是文档)?难道不能简单地缓存未命中的第一名吗?。似乎不是这样,但是…Docker确实每隔一次更新就为我提供几个小时的娱乐。追溯最新的更新,看看发生了什么变化,可能会给你一些提示,是的,我也这么做了。我已经搜索了源代码和文档。找到了多个有关如何设置的文档,以及源代码中的错误代码表。然而,我很难理解错误消息在说“成功”之类的话时的含义。缓存未命中不会引发错误,但只返回None。请注意,在运行一段时间之前,它不会引发错误。我使用最新的官方docker图像。如果您能提供更多信息,我们将不胜感激。至于我,您应该继续检查(分析)特定错误代码的代码(如您的报告中的37、47)。减少到一些可重复的测试用例,同时看起来您的网络(或运行memcached的主机)有一些严重错误。。。但目前还不能说出确切的原因。对不起,我不能给你更好的建议,至少在这种情况下我会遵循这个向量。我想提到查看系统日志是显而易见的
Exception Value: error 31 from memcached_get(:1:a7735b06da00d2e6991920299c31): (14006136669712) A TIMEOUT OCCURRED, host: 10.140.0.16:11211 -> libmemcached/get.cc:314

error 37 from memcached_set: SUCCESS

error 47 from memcached_get(:1:throttle_naive_9885206_None_): (140085126390144) SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY, host: 10.140.0.16:11211 -> libmemcached/get.cc:314