Redis无休止的请求 workers.restart_requested_timestamp 和 tmpkdevpfsi

问题描述 投票:0回答:1

我使用docker Docker version 19.03.1, build 74b1e89 与docker组成 docker-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. 我研究了有关信息,建议是删除 /tmp/kdevtmpfsi 从redis容器。但是没办法,在执行了一些缓存后,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负载的问题,它是在防火墙中为外部的redis打开了端口(6379),一些恶意脚本解析了它并使用。现在只剩下这个了 restart_requested_timestamp 请求。你能给我解释一下这是正确的行为吗?

docker symfony redis alpine
1个回答
0
投票
Symfony\Component\Messenger\Worker\StopWhenRestartSignalIsReceived

Symfony messanger组件只是检查messenger:stop-worker命令是否被触发。它在寻找 重启请求的时间戳 缓存密钥,如果该密钥存在,消费者将停止其工作。

也许这是关于numprocs的。你要启动多少个消费者?

© www.soinside.com 2019 - 2024. All rights reserved.