Redashの溜まってしまったQUERIES QUEUEを解消する方法

Redash

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が溜まっていたら、消してみると解消するかもしれませんので、お試しください。

コメントを残す