Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何调整芹菜设置,以便Redis不使用同样多的内存?芹菜任务结果过期?_Django_Redis_Celery - Fatal编程技术网

Django 如何调整芹菜设置,以便Redis不使用同样多的内存?芹菜任务结果过期?

Django 如何调整芹菜设置,以便Redis不使用同样多的内存?芹菜任务结果过期?,django,redis,celery,Django,Redis,Celery,这里有点像芹菜,但我想我有一个配置问题,芹菜在Redis中放了太多东西 我的目标是尽量减少或优化Redis正在使用的内存量 我有一个相当大的Django生产项目,芹菜工作“很多”。在my settings.py中,我有 BROKER_BACKEND = "redis" 从顶部-p13907Redis正在使用大量内存(盒子上只有芹菜使用): 我找到了这个设置,看起来应该添加到我的设置文件中 默认情况下,从文档中看,它似乎设置为1天(86400秒) 这就是我想要改变的吗?还是有更多的设置需要我查看

这里有点像芹菜,但我想我有一个配置问题,芹菜在Redis中放了太多东西

我的目标是尽量减少或优化Redis正在使用的内存量

我有一个相当大的Django生产项目,芹菜工作“很多”。在my settings.py中,我有

BROKER_BACKEND = "redis"
顶部-p13907
Redis正在使用大量内存(盒子上只有芹菜使用):

我找到了这个设置,看起来应该添加到我的设置文件中

默认情况下,从文档中看,它似乎设置为1天(86400秒)


这就是我想要改变的吗?还是有更多的设置需要我查看?另一件我不确定的事情是,如果我添加了它,我应该如何决定将其设置为“安全”秒数?

我猜可能是芹菜调用者忘记了清理结果,这些结果将存储在消息队列服务器中,直到过期。在芹菜里,你必须打电话

r.get()

获取结果并在消息队列中清除它。如果只访问结果而不调用此函数:

r.result


结果仍然会被消息队列服务器保留,并消耗大量内存

我猜您的芹菜调用者可能忘了清理结果,这些结果将存储在消息队列服务器中,直到过期。在芹菜里,你必须打电话

r.get()

获取结果并在消息队列中清除它。如果只访问结果而不调用此函数:

r.result


结果仍然会被消息队列服务器保留,并消耗大量内存

这是什么芹菜?配置结果过期确实是明智的,但可能不是(唯一)原因。当我在shell的2.2.6版本中使用celeryd--version时,3.0之前的版本中出现了影响Redis的内存泄漏。每次启动监视器(celeryev、celerymon、celerycam)时,它都会在数据库中创建一个新密钥,事件的复制次数与启动监视器的次数相同。在芹菜3.0中,它使用PUB/SUB而不是持久列表,这除了解决了内存泄漏之外,还提供了更好的性能。oooo很酷,谢谢!也许这就是我受到的影响…似乎我得到了这个uber大“ae.undeliver”redis密钥,这是Kombu Cellery thing使用的东西(这反过来也是celeryev、celerymon、celerycam使用的东西)发现了它,我想-->是的,当我在该报告中运行示例redis cli命令时,我有同样大的记忆号码这是什么芹菜版本?配置结果过期确实是明智的,但可能不是(唯一)原因。当我在shell的2.2.6版本中使用celeryd--version时,3.0之前的版本中出现了影响Redis的内存泄漏。每次启动监视器(celeryev、celerymon、celerycam)时,它都会在数据库中创建一个新密钥,事件的复制次数与启动监视器的次数相同。在芹菜3.0中,它使用PUB/SUB而不是持久列表,这除了解决了内存泄漏之外,还提供了更好的性能。oooo很酷,谢谢!也许这就是我受到的影响…似乎我得到了这个uber大“ae.undeliver”redis密钥,这是Kombu Cellery thing使用的东西(这反过来也是celeryev、celerymon、celerycam使用的东西)发现了它,我想-->是的,当我在该报告中运行示例redis cli命令时,我也有同样大的记忆数字
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
13907 redis     20   0 10.5g 3.3g  532 S    0 42.8 109:38.94 redis-server