Redis бесконечные запросы работники.restart_requested_timestamp и / tmp / kdevtmpfsi - PullRequest
0 голосов
/ 15 апреля 2020

Я использую docker Docker version 19.03.1, build 74b1e89 с docker compose docker-compose version 1.23.1, build b02f1306, и я использую изображение redis для кэша магазина и других. Когда я вошел в контейнер 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:alpine и redis:5.0.8 и столкнулся с тем же поведением

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

В моем приложении (Symfony) я настроил cace для redis с портом как это

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

Локально этот запрос MGET не создает для меня проблемы, но на тестовом сервере все шесть процессоров загружаются на 100%, я не знаю, зависит ли он от redis или нет, но в Монитор htop на тестовом сервере приводит к потере мощности всех процессоров с помощью Command - /tmp/kdevtmpfsi. Я исследовал информацию об этом, и рекомендация должна была быть удалена /tmp/kdevtmpfsi из контейнера redis. Но это не помогло, после некоторого кеширования процессор снова загрузился. Я не знаю, может быть, это два вопроса о /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

ОБНОВЛЕНИЕ

Устранена проблема с загрузкой ЦП, в брандмауэре был открыт порт (6379) для повторного вызова извне, и некоторые вредоносные скрипты проанализировали его и использовали. Теперь только то, что осталось, это restart_requested_timestamp запрос. Не могли бы вы объяснить мне, что это правильное поведение?

1 Ответ

0 голосов
/ 04 мая 2020
Symfony\Component\Messenger\Worker\StopWhenRestartSignalIsReceived

Symfony компонент мессенджера, просто проверяющий, была ли запущена команда messenger: stop-worker. Он ищет restart_requested_timestamp ключ кэша и, если этот ключ существует, потребитель прекратит свою работу.

Возможно, речь идет о numprocs. Сколько потребителей вы начинаете?

...