Mastodon by TECH DRIVE#鯖日報

4/29 の #鯖日報

ver1.2.2

webとworkerでDynoを一つずつPostgresは$9のプランにあげた状態。$7+$7+$9 くらいの月額。

WEB_CONCURRENCY 2
MAX_THREAD 2
DB_POOL 10
SIDEKIQ :concurrency: 3

ユーザ数 126人
ローカルタイムライン 2-3名

上がWEB、下がWorker。

4/28 の #鯖日報

ver1.2.2

webとworkerでDynoを一つずつPostgresは$9のプランにあげた状態。$7+$7+$9 くらいの月額。

WEB_CONCURRENCY 2
MAX_THREAD 2
DB_POOL 10
SIDEKIQ :concurrency: 3

ユーザ数 123人
ローカルタイムライン 2-3名

上がWEB、下がWorker。

404のエラー通知が多すぎたので一旦Rollbarに飛ばないようにした。どこかでまた復活させたい。

Heroku側の不具合があった様子だが、特に大きな問題はない。

4/27 の #鯖日報

ver1.2.2

webとworkerでDynoを一つずつPostgresは$9のプランにあげた状態。$7+$7+$9 くらいの月額。

WEB_CONCURRENCY 2
MAX_THREAD 2
DB_POOL 10
SIDEKIQ :concurrency: 3

ユーザ数 118人
ローカルタイムライン 2-3名

上がWEB、下がWorker。

昨日の午後2時ごろに何かあったのだろうか。一気に負荷が高まった様子。一度メモリエラーが発生したがあとは順調に動いたようだ。
現在は極めて順調。

RollbarはほとんどがSidekiqのタイムアウトではあるが、今度改めて分析したい。

今朝フォローしまくるアカウントを削除したので、少しメモリ使用量が減った様子。

4/25 の #鯖日報

ver1.2.2

webとworkerでDynoを一つずつPostgresは$9のプランにあげた状態。$7+$7+$9 くらいの月額。
ほぼお一人様インスタンス。

WEB_CONCURRENCY 2
MAX_THREAD 2
DB_POOL 10
SIDEKIQ :concurrency: 3

上がWEB、下がWorker。 mstdn.techdrive.top/media/6jgc mstdn.techdrive.top/media/XIn8

4/24 の #鯖日報

ver1.2.2

webとworkerでDynoを一つずつPostgresは$9のプランにあげた状態。$7+$7+$9 くらいの月額。
ほぼお一人様インスタンス。

WEB_CONCURRENCY 2
MAX_THREAD 2
DB_POOL 10
SIDEKIQ :concurrency: 3

上がWEB、下がWorker。

WEBに薄くSWAPの発生が見られているので、チューニングするならこのあたりからにほぼ確定。worker自体がそれほどメモリ負荷ではないことが結果からわかったのではないか。

使うユーザ像によってこれらの傾向は違うかもしれない。画像成分ほぼ無しのテキストインスタンスだとこんな感じとわかるかも?

4/23 の #鯖日報

ver1.2.2

webとworkerでDynoを一つずつPostgresは$9のプランにあげた状態。$7+$7+$9 くらいの月額。
ほぼお一人様インスタンス。

WEB_CONCURRENCY 2
MAX_THREAD 2
DB_POOL 10
SIDEKIQ :concurrency: 3

上がWEB、下がWorker。
昨日のバージョンアップによって、メモリの増減の傾向が少し変わった。以前より小刻みに変動してる節がある。

多少上昇傾向であることはあるが、安定している。

4/22 の #鯖日報

続き

# productionのアップ

0. DBバックアップ
1. STREAMING_CLUSTER_NUM=1を streamingサーバーへ仕掛ける
2. PR into production from develop(マージすれば自動デプロイされる)
3. heroku run RAILS_ENV=production bin/rails db:migrate
4. heroku restart
5. Heroku Schedulerへmastodon:dailyを仕掛ける

4/22 の #鯖日報

続き

アップの手順を未来の自分へ残す。

# stagingのアップ

0. DBバックアップ
1. upstreamをfork元masterに合わせる
2. developブランチから新規ブランチmigrate_to_1_2_2作成
3. upstream tag 1.2.2をmigrate_to_1_2_2へマージ
4. PR develop from migrate_to_1_2_2(マージすれば自動デプロイされる)
5. STREAMING_CLUSTER_NUM=1を streamingサーバーへ仕掛ける
6. bundle exec rails db:migrate
7. heroku restart
8. Heroku Schedulerへmastodon:daily仕掛ける

4/22 の #鯖日報

ver1.2.2(UP!)

webとworkerでDynoを一つずつPostgresは$9のプランにあげた状態。$7+$7+$9 くらいの月額。
ほぼお一人様インスタンス。

WEB_CONCURRENCY 2
MAX_THREAD 2
DB_POOL 10
SIDEKIQ :concurrency: 3

上がWEB、下がWorker。

初のバージョンアップを実行。staging環境を整えて昨夜バージョンアップして朝まで放置。大丈夫そうだったのでproductionも更新した。スムーズにできたと思う。

メモリの動きが小刻みになった様子。もしもこれでリークが減るならメモリ利用周辺に改善が入ったのだろう。

mstdn.techdrive.top/media/dkZn mstdn.techdrive.top/media/VEZD

4/21 の #鯖日報

webとworkerでDynoを一つずつPostgresは$9のプランにあげた状態。$7+$7+$9 くらいの月額。
ほぼお一人様インスタンス。

WEB_CONCURRENCY 2
MAX_THREAD 2
DB_POOL 10
SIDEKIQ :concurrency: 3

上がWEB、下がWorker。
Pubsubhubbub::DeliveryWorker のログが多いのと、一回に1秒弱かかるシーンもある為、ここをチューニングできればworkerが楽になると思われる。

また、九万フォローしているようなフォローボットをアカウントから削除した後の再起動でworkerの負荷がかなり下がったような気がする。

フォローの数が多過ぎなアカウントをサーバーに残さないとかも実は有効な手段?

mstdn.techdrive.top/media/20Wq mstdn.techdrive.top/media/qMYp