Redis перестает принимать соединения - PullRequest
0 голосов
/ 09 октября 2018

У меня есть простая http-служба, поддерживаемая простым Redis db / cache.

У меня есть http-служба, которая обрабатывает ~ 20 тыс. Запросов / сек и проверяет, находятся ли входящие ip-адреса в ip-кэше Redis.Служба http выполняет простой запрос EXISTS <ip> для каждого запроса.Я использую пул соединений Redis.

Это прекрасно работает, когда Redis db / cache мала.Когда он превышает примерно 30 миллионов ключей IP-адресов, он время от времени переходит в непригодное для использования состояние, когда Redis прекращает принимать новые соединения TCP.Redis все еще работает, Redis не регистрирует никаких ошибок.Я предполагаю, что пул соединений в моем http-приложении забивает Redis и препятствует его восстановлению.Если я перезапущу http-сервис, Redis на короткое время станет пригодным для использования, а затем перейдет в непригодное для использования состояние.

Могу ли я что-нибудь сделать, чтобы диагностировать эту проблему и точно понять, что происходит?

Кстати, я увеличил максимальное количество подключений Redis со значения по умолчанию с 10 000 до 100 000.

Если я оставлю сеанс Redis-Cli открытым, подождите, пока он не перейдет в это состояние, я запускаю info и получаю:

127.0.0.1:6379> info
# Server
redis_version:4.0.11
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:1f4f378a02f33037
redis_mode:standalone
os:Linux 4.4.0-34-generic x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:5.4.0
process_id:16512
run_id:dee0869429244d6fe49d8f780111cc7dd8cd1b2c
tcp_port:6379
uptime_in_seconds:2212
uptime_in_days:0
hz:10
lru_clock:12386501
executable:/usr/share/redis/src/redis-server
config_file:/usr/share/redis-4.0.11/redis.conf

# Clients
connected_clients:28232
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

# Memory
used_memory:4031188608
used_memory_human:3.75G
used_memory_rss:3725819904
used_memory_rss_human:3.47G
used_memory_peak:4052135896
used_memory_peak_human:3.77G
used_memory_peak_perc:99.48%
used_memory_overhead:3109367460
used_memory_startup:6144192
used_memory_dataset:921821148
used_memory_dataset_perc:22.90%
total_system_memory:31702503424
total_system_memory_human:29.53G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:0.92
mem_allocator:jemalloc-4.0.3
active_defrag_running:0
lazyfree_pending_objects:0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...