복붙노트

[REDIS] 어떻게 오류 디버깅하는 레디 스에서 "OOM 명령을 할 때 사용되는 메모리> 'maxmemory'허용되지?"

REDIS

어떻게 오류 디버깅하는 레디 스에서 "OOM 명령을 할 때 사용되는 메모리> 'maxmemory'허용되지?"

나는 "OOM 명령이 허용되지 않습니다"얻고 키를 설정하려고 할 때, maxmemory는, 나는 레디 스에 전송 된 각 키의 TTL을 설정하고있어 maxmemory 정책 "휘발성-LRU"로 500M로 설정되어 있습니다.

INFO 명령이 리턴 : used_memory_human : 809.22M

여기에 정보 명령 출력은 다음과 같습니다

redis-cli -p 6380
redis 127.0.0.1:6380> info
# Server
redis_version:2.6.4
redis_git_sha1:00000000
redis_git_dirty:0
redis_mode:standalone
os:Linux 2.6.32-358.14.1.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.4.7
process_id:28291
run_id:229a2ee688bdbf677eaed24620102e7060725350
tcp_port:6380
uptime_in_seconds:1492488
uptime_in_days:17
lru_clock:1429357

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

# Memory
used_memory:848529904
used_memory_human:809.22M
used_memory_rss:863551488
used_memory_peak:848529192
used_memory_peak_human:809.22M
used_memory_lua:31744
mem_fragmentation_ratio:1.02
mem_allocator:jemalloc-3.0.0

# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1375949883
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
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

# Stats
total_connections_received:3
total_commands_processed:8
instantaneous_ops_per_sec:0
rejected_connections:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0

# Replication
role:master
connected_slaves:0

# CPU
used_cpu_sys:18577.25
used_cpu_user:1376055.38
used_cpu_sys_children:0.00
used_cpu_user_children:0.00

# Keyspace
redis 127.0.0.1:6380>

해결법

  1. ==============================

    1.가능성은 당신이 데이터베이스의 수를 변경? 매우 큰 수를 사용하는 경우 초기 메모리 사용량이 높을 수 있습니다

    가능성은 당신이 데이터베이스의 수를 변경? 매우 큰 수를 사용하는 경우 초기 메모리 사용량이 높을 수 있습니다

  2. ==============================

    2.레디 스 'maxmemory 휘발성 LRU 정책은 maxmemory 한계가 이미 비 휘발성 키로 사용하는 경우 충분한 메모리를 확보 실패 할 수 있습니다.

    레디 스 'maxmemory 휘발성 LRU 정책은 maxmemory 한계가 이미 비 휘발성 키로 사용하는 경우 충분한 메모리를 확보 실패 할 수 있습니다.

  3. ==============================

    3.메모리는 설정 제어된다. 그것이 말하는대로 따라서, 인스턴스는 제한했다. 당신도 한계를 얻을 수 있도록 redis.conf 또는 CLI 도구 문제 "설정 GET maxmemory"에서 볼 수있다.

    메모리는 설정 제어된다. 그것이 말하는대로 따라서, 인스턴스는 제한했다. 당신도 한계를 얻을 수 있도록 redis.conf 또는 CLI 도구 문제 "설정 GET maxmemory"에서 볼 수있다.

    이 레디 스 인스턴스를 관리하는 경우, 당신은 상담 및 설정 파일을 조정해야합니다. 일반적으로 /etc/redis.conf 또는 /etc/redis/redis.conf에서 찾았다.

    당신은 레디 스 제공자를 사용하는 경우, 당신은 당신의 한계를 증가에 대해 그들과 함께 얻을해야합니다.

  4. ==============================

    4.데이터가 이미 저장 된 후 우리의 경우, maxmemory이 높은 금액으로 설정, 팀의 다음 사람이 더 낮은 금액으로 변경되었습니다.

    데이터가 이미 저장 된 후 우리의 경우, maxmemory이 높은 금액으로 설정, 팀의 다음 사람이 더 낮은 금액으로 변경되었습니다.

  5. ==============================

    5.이러한 문제의 경우, redis.conf 파일에 maxmemory을 늘리는 것이 좋습니다. 그것은 저를 도왔다.

    이러한 문제의 경우, redis.conf 파일에 maxmemory을 늘리는 것이 좋습니다. 그것은 저를 도왔다.

    maxmemory 다음 날 21000000처럼 나는 31000000. 희망이 도움으로 변경되었습니다.

  6. from https://stackoverflow.com/questions/18430324/how-to-debug-the-error-oom-command-not-allowed-when-used-memory-maxmemory by cc-by-sa and MIT license