2014-10-08 19 views
4

目前,我的8GB RAM服务器对Redis使用了5.33GB(服务器的其他部分大约需要1.6GB,所以即使在重新启动服务器之后,我已经在〜7GB内存[88%])。 Redis的内存使用量持续增长,直到最终被Ubuntu的OOM杀死,导致我的节点应用程序出现大量错误。Redis不断占用大量的内存并一直增长直到被OOM杀死

我在本文的底部附加了Redis INFO输出。我原本以为redis中可能有太多密钥,但是我从Redis(http://redis.io/topics/faq)读取了100万个密钥是〜100MB。我们有大约200万(〜200MB - 远不到5GB),所以这可能不是问题。

我的问题是: - redis在哪里消耗所有这些内存?密钥空间并不占用太多。 - 我能做些什么来阻止它持续消耗更多的内存?

谢谢!

# 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 
+4

通过设置maxmemory来避免oom杀手。你的钥匙是什么?键的数量当然是一个因素,但它们的值的大小(和他们的名字的长度)/ – 2014-10-08 22:45:00

回答

1

感谢您的回应Itamar。我在虚假(真的没有足够的想法)的印象下,关键和价值观都大致相同。事实证明,从kue存储的每个超过10KB的哈希都存在,我们有数十万个。除去那些人工作。

再次感谢。

相关问题