Redis无休止的请求workers.restart_requested_timestamp和/tmp/kdevtmpf



我使用dockerDocker version 19.03.1, build 74b1e89和docker composedocker-compose version 1.23.1, build b02f1306,我使用redis image来存储缓存和其他。当我进入redis容器并启动MONITOR命令时,我面临着无尽的请求,你知道这是什么吗?这是redis的正常行为吗?

1586967988.436843 [0 172.19.0.7:40238] "MGET" "ikbkr16GHQ:workers.restart_requested_timestamp"
1586967988.871148 [0 172.19.0.7:40252] "MGET" "ikbkr16GHQ:workers.restart_requested_timestamp"
1586967989.445710 [0 172.19.0.7:40238] "MGET" "ikbkr16GHQ:workers.restart_requested_timestamp"
1586967989.891562 [0 172.19.0.7:40252] "MGET" "ikbkr16GHQ:workers.restart_requested_timestamp"
1586967990.454699 [0 172.19.0.7:40238] "MGET" "ikbkr16GHQ:workers.restart_requested_timestamp"
1586967990.909510 [0 172.19.0.7:40252] "MGET" "ikbkr16GHQ:workers.restart_requested_timestamp"
1586967991.464312 [0 172.19.0.7:40238] "MGET" "ikbkr16GHQ:workers.restart_requested_timestamp"

我曾经构建image: redis:alpineredis:5.0.8,并面临相同的行为

redis:
container_name: container_redis
image: redis:5.0.8
ports:
- "6379:6379"
networks:
- php

在我的应用程序(Symfony(中,我为redis配置了cace,端口如下

framework:
cache:
prefix_seed: minimoj/minimoj_be
# Redis
app: cache.adapter.redis
default_redis_provider: redis://redis:6379

在本地,这个MGET请求并没有给我带来问题,但在测试服务器上,所有六个CPU的负载都是100%,我不知道是否依赖于redis,但是在测试服务器的htop监视器上,所有CPU的功耗都是Command-/tmp/kdevtmpfsi。我研究了有关这方面的信息,建议从redis容器中删除/tmp/kdevtmpfsi。但这并没有帮助,在一些缓存执行后,CPU再次加载到顶部。我不知道,也许这是关于/tmp/kdevtmpfsi和无尽请求的两个问题,但也许它们彼此依赖

我由主管管理我的消费者

[program:messenger-consume]
command=php /var/www/symfony/bin/console messenger:consume success andraction_parse_row_success --limit=100
numprocs=2
autostart=true
autorestart=true
process_name=%(program_name)s_%(process_num)02d

更新

我解决了CPU加载的问题,它在防火墙中打开了端口(6379(,用于外部的redis,一些恶意脚本解析并使用了它。现在只剩下restart_requested_timestamp请求了。你能解释一下这是不正确的行为吗?

SymfonyComponentMessengerWorkerStopWhenRestartSignalIsReceived

Symfony messanger组件只是检查messenger:stop worker命令是否被触发。它正在查找restart_requested_timestamp缓存密钥,如果该密钥存在,消费者将停止其工作。

也许这是关于numprocs的。你从多少消费者开始?

最新更新