RedashでSelectが全く出来なくなることがある
Redashを使っていると、時々重いクエリを走らせてしまい、全くうんともすんとも言わなくなってしまうことがありました。
その時の解消方法が意外なところにあったので、メモしておきたいと思います。
RedashでIN PROGRESSのQUEUEが溜まってしまう
色々と調査したのですが、原因はSYSTEM STATUSのQUERIES QUEUEが溜まってしまうことが原因でした。
どうやらRedashでは、クエリを実行するとRedisにQUEUEが溜まっていき、実行時間が長いクエリやキャンセルが上手くいかなかったりすると、そのRedisのQUEUEが解消されないことがあるようです。
直接サーバーに入ってQUEUEを削除する
私はAWSのAMIで入れたRedashを使っているので、SSHでRedashのサーバーにログイン。
その後、Redisのcliを立ち上げる。
redis-cli
溜まっているIN PROGRESSのQUEUE一覧を表示する。
zrange query_task_trackers:in_progress 0 -1
こんな感じで一覧が表示される。
1) "query_task_tracker:5371d536-c122-4a98-9e11-51045558d02e" 2) "query_task_tracker:478172c4-0e9a-436a-8f5c-e84f82398866" 3) "query_task_tracker:21f20e7c-b0b3-410d-811a-7b2670e0a7c5" 4) "query_task_tracker:03650aac-8b4d-4acd-818b-29024d19f7a6" 5) "query_task_tracker:1cf964a2-ca2d-44be-8424-d704524d9cf7"
一覧で表示されたQUEUEを削除する。
zrem query_task_trackers:in_progress query_task_tracker:5371d536-c122-4a98-9e11-51045558d02e
こうすることで、溜まっていたQUEUEが一覧から消えます。
特にこのQUEUEが20件溜まっていると、うんともすんとも言わなくなってしまうようなので、気をつけてください。
Redashの調子が悪かったら、System Statusを覗いてみましょう。
そこで、QUEUEが溜まっていたら、消してみると解消するかもしれませんので、お試しください。