현재 8 기가 바이트 RAM 서버는 Redis에 5.33GB를 사용하고 있습니다 (서버의 다른 부분은 약 1.6GB를 차지하므로 서버를 재부팅 한 직후에도, 저는 이미 7GB RAM (88 %)입니다. Redis의 메모리 사용량은 Ubuntu의 OOM에 의해 결국 죽을 때까지 계속 증가하여 노드 응용 프로그램에 오류가 발생합니다.Redis는 지속적으로 많은 양의 메모리를 필요로하며 OOM에 의해 죽을 때까지 계속됩니다.
나는이 게시물의 하단에 Redis INFO 출력을 첨부했습니다. 원래는 너무 많은 키가있을 것이라고 생각했지만 Redis (http://redis.io/topics/faq)에서 1 백만 개의 키가 ~ 100MB라고 읽었습니다. 우리는 약 2 백만 (~ 200MB - 아무데도 5 기가 바이트), 그래서 이것은 아마도 문제가 될 수 없습니다.
내 질문은 : -이 메모리를 모두 소모하는 곳은 어디입니까? 키 공간은별로 중요하지 않습니다. - 지속적으로 더 많은 메모리를 사용하지 못하게하려면 어떻게해야합니까?
감사합니다.
# Server
redis_version:2.8.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:f73a208b84b18824
redis_mode:standalone
os:Linux 3.2.0-55-virtual x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.6.3
process_id:1286
run_id:6d3daee5341a549dfaca63706c40c44086198317
tcp_port:6379
uptime_in_seconds:1390
uptime_in_days:0
hz:10
lru_clock:771223
config_file:/etc/redis/redis.conf
# Clients
connected_clients:198
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:72
# Memory
used_memory:5720230408
used_memory_human:5.33G
used_memory_rss:5826732032
used_memory_peak:5732485800
used_memory_peak_human:5.34G
used_memory_lua:33792
mem_fragmentation_ratio:1.02
mem_allocator:jemalloc-3.5.0
# Persistence
loading:0
rdb_changes_since_last_save:94
rdb_bgsave_in_progress:0
rdb_last_save_time:1412804004
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:40
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
# Stats
total_connections_received:382
total_commands_processed:36936
instantaneous_ops_per_sec:0
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:2421
keyspace_misses:1
pubsub_channels:1
pubsub_patterns:9
latest_fork_usec:1361869
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
# CPU
used_cpu_sys:15.95
used_cpu_user:101.34
used_cpu_sys_children:12.55
used_cpu_user_children:146.17
# Keyspace
db0:keys=2082234,expires=1162351,avg_ttl=306635722644
maxmemory를 설정하여 oom killer를 피하십시오. 열쇠에 뭐가 들어 있니? 키의 수는 확실히 하나의 요소 일뿐만 아니라 값의 크기 (및 이름의 길이) / –