AWSのElasticache(Redis)のパラメーターmaxclientsの値が上限に達したときの対応方法
Sidekiqを動かすためにAWSのElasticacheを使用しています。
Redisのバージョンは2.8.6です。
Redisの「(error) ERR max number of clients reached」というエラー対応に困っています。
コマンドライン操作で「FLUSHALL」を実行して、データを一旦クリアすることで対応しましたが、待機状態のジョブもリセットしてしまう結果となったので、ジョブのリセットを防ぐ良い解決策を知っている方がいればお教えください。
よろしくお願いします。詳細は下記にまとめました。
Redisのmaxclientsというパラメーターが上限値(65000)に達してしまった際に発生するエラーで、Sidekiqのダッシュボード画面の下部の「接続」という項目(※下図の赤枠箇所)が64999となり、Sidekiqの動作も止まってしまう。
Elasticacheのマニュアル(http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html)
によると、maxclientsの上限値は変更できないとのこと。
エラーへの対応として、Elasticacheをリブートして、コマンドライン操作で「FLUSHALL」を実行して、データを一旦クリアすることで対応。
(※Redisのコマンドライン操作で何を打ち込んでも、「(error) ERR max number of clients reached」のエラーが返ってきてしまい、「FLUSHALL」すらできなかったので、Elasticacheの再起動が必要だった。)
しかし、待機状態のジョブもリセットしてしまう結果となった。