1

この python スクリプトを使用して、ある ElastiCache redis インスタンスから別のインスタンスにデータを移行しています。Redis パイプラインを使用して、データをチャンク単位で移行します。

https://gist.github.com/thomasst/afeda8fe80534a832607

しかし、私はこの奇妙なエラーが発生しています:

Traceback (most recent call last):###########                                         | ETA:  0:00:12
  File "migrate-redis.py", line 95, in <module>
    migrate()
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 664, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 644, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 837, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 464, in invoke
    return callback(*args, **kwargs)
  File "migrate-redis.py", line 74, in migrate
    results = pipeline.execute(False)
  File "/usr/local/lib/python2.7/dist-packages/redis/client.py", line 2593, in execute
    return execute(conn, stack, raise_on_error)
  File "/usr/local/lib/python2.7/dist-packages/redis/client.py", line 2446, in _execute_transaction
    all_cmds = connection.pack_commands([args for args, _ in cmds])
  File "/usr/local/lib/python2.7/dist-packages/redis/connection.py", line 637, in pack_commands
    output.append(SYM_EMPTY.join(pieces))
MemoryError

ノードには 6 GB の RAM があるため、RAM に問題はありません。

ソース redis のメモリ プロファイルは次のとおりです。

used_memory:1483900120
used_memory_human:1.38G
used_memory_rss:1945829376
used_memory_peak:2431795528
used_memory_peak_human:2.26G
used_memory_lua:86016
mem_fragmentation_ratio:1.31
mem_allocator:jemalloc-3.6.0

これの考えられる原因は何ですか?

4

1 に答える 1