2

実稼働環境ではRedis1.2.6を使用しています。redisには161804キーがあります。マシンには2GBのRAMが搭載されています。

問題:

RedisへのSelectクエリは平均0.02秒かかります。しかし、1.5〜2.0秒かかることもありますが、redisが変更されたキーをディスクに保存するときはいつでもそう思います。

redisを再起動する前後に気付いた奇妙なことの1つは、次のとおりです。

再起動する前に、「changes_since_last_save」の変更が速すぎて、3000以上に達していました(5分で)。ただし、再起動後、「changes_since_last_save」は20程度未満のままです。

再起動前に統計を再実行します:

{:bgrewriteaof_in_progress=>"0", :arch_bits=>"64", :used_memory=>"53288487", :total_connections_received=>"586171", :multiplexing_api=>"epoll", :used_memory_human=>"50.82M", :total_commands_processed=>"54714152", :uptime_in_seconds=>"1629606", :changes_since_last_save=>"3142", :role=>"master", :uptime_in_days=>"18", :bgsave_in_progress=>"0", :db0=>"keys=161863,expires=10614", :connected_clients=>"13", :last_save_time=>"1280912841", :redis_version=>"1.2.6", :connected_slaves=>"1"}

再起動後のRedis統計:

{:used_memory_human=>"49.92M", :total_commands_processed=>"6012", :uptime_in_seconds=>"1872", :changes_since_last_save=>"2", :role=>"master", :uptime_in_days=>"0", :bgsave_in_progress=>"0", :db0=>"keys=161823,expires=10464", :connected_clients=>"13", :last_save_time=>"1280917477", :redis_version=>"1.2.6", :connected_slaves=>"1", :bgrewriteaof_in_progress=>"0", :arch_bits=>"64", :used_memory=>"52341658", :total_connections_received=>"252", :multiplexing_api=>"epoll"}

ここで何が問題になっているのかわかりません。

前もって感謝します。

スニル

4

1 に答える 1

3

デフォルトでは、Redis は、ある期間に変更されたキーの量に応じて、すべてのデータを時々ディスクにダンプするように設定されています (デフォルト設定を参照)。

もう 1 つのオプションは、追加専用ファイルを使用することです。これはより軽量ですが、何らかのメンテナンスが必要ですBGREWRITEAOF。ログが大きくなりすぎないように、時々実行する必要があります。これについては、 Redis 構成ファイルに詳細があります。

Tobias が言うように、できるだけ早く 2.0 に切り替える必要があります。これは、多くの場合、1.2.6 よりも高速で、メモリの使用量が少ないためです。

于 2010-08-26T03:41:45.587 に答える