FLUSHALL ASYN C безопасен в Redis? - PullRequest
1 голос
/ 20 января 2020

Я новичок в DevOps, так что, пожалуйста, помогите мне, если FLUSHALL ASYNC в Redis thread safe. Повлияет ли это на производительность моего сервера, поскольку Redis удаляет ключи в фоновом режиме, используя другой поток, не блокируя сервер? в настоящее время используется: laravel PS Я хочу использовать эту команду, чтобы мой сервер не переставал отвечать на запросы, как это было раньше (в течение 10 секунд и все попадания продолжают складываться, вызывая голодание процессора)

1 Ответ

2 голосов
/ 20 января 2020

Что на самом деле FLUSHALL ASYNC делает, так это создает новый пустой набор таблиц ha sh для каждого словаря базы данных (в каждом словаре есть две таблицы ha sh) и планирует старые для отложенного освобождения.

Это поточно-ориентированный, но он увеличит загрузку вашего ЦП, пока базы данных очищаются в фоновом режиме, и вы также можете ожидать некоторого снижения производительности.

На пустом сервере redis я загрузил пара баз данных с ключами 20M каждая:

>select 4
OK
[4]> debug populate 20000000 key 20
OK
(16.49s)
[4]> select 3
OK
[3]> debug populate 20000000 key 20
OK
(16.75s)
[3]> info memory
# Memory
used_memory:3739770656
used_memory_human:3.48G

Тест производительности:

~$ redis-benchmark -c 5 -t set,lpush -q
SET: 30413.62 requests per second
LPUSH: 30553.01 requests per second

Тот же тест сразу после запуска FLUSHALL ASYNC (сервер удаляет ключи 40M в фоновом режиме):

~$ redis-benchmark -c 5 -t set,lpush -q
SET: 26288.12 requests per second
LPUSH: 25367.83 requests per second

Я вижу ухудшение на 15%

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...