論理DB/Redisの掃除

Publish date: Mar 8, 2020
Tags: postgresql

いったん論理DBを削除しようとしたら

postgres=# DROP DATABASE mastodon_production;
ERROR:  database "mastodon_production" is being accessed by other users
DETAIL:  There is 1 other session using the database.

何かアクセスしていますとのこと
バックグラウンドで動いているサービスを止めていきます。

# service mastodon-web stop
# service mastodon-sidekiq stop
# service mastodon-streaming stop

DROP DATABASE します。

# su - postgres
$ psql postgres

postgres=# DROP DATABASE mastodon_production;
DROP DATABASE

消えているか確認
postgres=# \l

新しく作ります。

$ psql
postgres=# CREATE DATABASE mastodon_production ENCODING 'UTF-8';
CREATE DATABASE

mastodonユーザーでDB名を指定して入る

$ psql mastodon_production

gzipで圧縮したものを解凍して、出力した値をpsqlコマンドでmastodon_productionにリストアしていきます。

$ gzip -dc dump-latest.sql.gz | psql -U postgres -d mastodon_production

サービスを起動していきます。

# service mastodon-web start
# service mastodon-sidekiq start
# service mastodon-streaming start

Redisのデータを削除しました。
keysコマンドで登録されているキーの一覧を表示させて確認です。

# redis-cli
127.0.0.1:6379> flushall
OK

127.0.0.1:6379> keys *
(empty list or set)

CPUが一気に上がり始めました。

Sidekiqを止めて下がり始めたところを見ると
やはりSidekiqで捌いているリクエスト量がネックとなっているようです。

【 対策のアイディア集】
1. CPUQuota(制限)の解放
2. JP鎖国

焼け石に水の可能性もあるけれども、やってみるだけやろうと思います!