2017-02-14 5 views
0

私はHerokuの(https://elements.heroku.com/addons/heroku-redis)が主催Redisのインスタンスを持っているし、計画「プレミアム1」を使用してのRedis almotのための高いメモリ使用量がないキー

このRedisのは唯一ブル(https://www.npmjs.com/package/bull)と呼ばれる小さなキューシステムをホストするusuedされます

ほとんどのジョブがレディスに格納されているにもかかわらず、メモリ使用量は(100MOの)ほぼ100%になりました。私は本当につらい時私はやっとで95のMoを使用することができます方法を考え出すを持って

# Server 
redis_version:3.2.4 

# Memory 
used_memory:98123632 
used_memory_human:93.58M 
used_memory_rss:470360064 
used_memory_rss_human:448.57M 
used_memory_peak:105616528 
used_memory_peak_human:100.72M 
total_system_memory:16040415232 
total_system_memory_human:14.94G 
used_memory_lua:280863744 
used_memory_lua_human:267.85M 
maxmemory:104857600 
maxmemory_human:100.00M 
maxmemory_policy:noeviction 
mem_fragmentation_ratio:4.79 
mem_allocator:jemalloc-4.0.3 

# Keyspace 
db0:keys=45,expires=0,avg_ttl=0 

# Replication 
role:master 
connected_slaves:1 
master_repl_offset:25687582196 
repl_backlog_active:1 
repl_backlog_size:1048576 
repl_backlog_first_byte_offset:25686533621 
repl_backlog_histlen:1048576 

私は、このインスタンスにINFOのコマンドを実行し、ここで重要な部分(必要に応じて、よりを投稿することができます)です50オブジェクトが保存されます。これらのオブジェクトは、私がhttps://github.com/gamenet/redis-memory-analyzer試した

小さな文字列とIDを含む2-3のフィールドを持つ通常JSON本当に小さいですが、私はそれを

私はダンプを取得することはできませんを実行しようとすると、それは私にクラッシュしますヘロクはそれを許さないので。

私はここで少し失われています、私が見逃してしまった何かがあるかもしれませんが、私はレディスの理解の限界に達しています。

事前に任意のヒント/ポインタをありがとうございます。

EDIT

私たちは、実行中のすべてのものを維持するために、当社のRedisのインスタンスをアップグレードする必要がありましたが、問題はまだここにいるようです。私はredis-cli --bigkeysを試してみた現在34の鍵/ 34 Moの

に座っ:

Sampled 34 keys in the keyspace! 
Total key length in bytes is 743 (avg len 21.85) 

9 strings with 43 bytes (26.47% of keys, avg size 4.78) 
0 lists with 0 items (00.00% of keys, avg size 0.00) 
0 sets with 0 members (00.00% of keys, avg size 0.00) 
24 hashs with 227 fields (70.59% of keys, avg size 9.46) 
1 zsets with 23 members (02.94% of keys, avg size 23.00) 

私はどこかのオーバーヘッド建物アップがあるかなり確信しているが、私は何を見つけることができません。

EDITは2

私は実際には盲目だ:最初にこのポストを作成するときに、私は実行INFOコマンドでused_memory_lua_human:267.85Mと新しいインスタンス

これは、超高そうです、と説明するかもしれないようになりましused_memory_lua_human:89.25Mメモリ使用量

+0

私は彼らのサポートに連絡したいと思っています - あなたはすべての後にそれを支払っています –

答えて

0

多くの掘削の後、問題はとにかくレディスまたはヘロクから来ていません。

私たちが使っているキューシステムには、時間の経過とともにRedisが繰り返しLuaスクリプトをキャッシュに入れてしまうという、最近のバグがあります。ここ

さらに詳しい情報:返信に時間がかかった人のためのhttps://github.com/OptimalBits/bull/issues/426

感謝。

0

あなたは、データベース内のわずか45のキーを持っているので、あなたが何ができるかです:

  1. KEYS *のすべてのキーを表示する
  2. DEBUG OBJECT <key>コマンドを各キーまたは複数のキーに対して実行すると、シリアル化された長さが返されるため、どのキーが多くの領域を消費するかをよく理解できます。

代わりにredis-cli --bigkeysを実行すると、最大のキーが表示されます。文字列の場合はGETコマンド、ハッシュの場合はHGETALLなどのように、データ型コマンドの固有のキーの内容を見ることができます。

+0

残念ながら、英雄の赤目に 'DEBUG'コマンドを使用することはできません。しかし、私は '--bigkeys'を見ます – Furzel

関連する問題