2017-04-16 04:26:45 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-16 13:01:58 zundaの投稿 zundan@mastodon.zunda.ninja
icon

Current status of mastodon.zunda.ninja:

$ heroku pg:info
=== DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 10/20
PG Version: 9.6.1
Created: 2017-04-15 01:28 UTC
Data Size: 10.7 MB
Tables: 26
Rows: 1189/10000 (In compliance)

Just light load on web and worker dynos.

icon

Trying again...

icon

Deploy to staging was successful on the second try :)

icon

And the production instance has been updated... and started to emit 500 errors:

$ heroku run rails db:migrate
$ heroku ps restart

2017-04-17 00:01:30 zundaの投稿 zundan@mastodon.zunda.ninja
icon

@sorah バックグラウンドで何か遅延してたのかもですねー

2017-04-17 07:00:01 zundaの投稿 zundan@mastodon.zunda.ninja
icon

@hyuki0000 メールがなくても下記でベリファイできますよ:

rails mastodon:confirm_email USER_EMAIL=<登録メールアドレス>

あと、下記で管理者に

rails mastodon:make_admin USERNAME=<登録ユーザー名>

https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Administration-gui

icon

HerokuでMastodonを動かすまでの最低限の手順をまとめてみました

https://github.com/zunda/mastodon/wiki/CreateInstanceOnHeroku

icon

Current status

$ heroku pg:info
=== DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 11/20
PG Version: 9.6.1
Created: 2017-04-15 01:28 UTC
Data Size: 11.6 MB
Tables: 26
Rows: 2138/10000 (In compliance)

Web dyno started to show slower response time. Might this be from an elevated traffic? https://mastodon.zunda.ninja/media/RJep9ipUWZnjjWFrkaM

Attach image
icon

Seems I want to move to a Hobby-basic ($9/mo) Postgres later this week.

2017-04-17 11:25:08 zundaの投稿 zundan@mastodon.zunda.ninja
icon

@tdtds 最初に試したとき、たぶんHeroku側の問題で、Heroku Buttonが動かなかったんですよね…。後でまた試してみます。

icon

@hyuki0000 @tdtds Heroku Button使わないで作ったインスタンスはS3なしでもトゥートできてます。やっぱりHeroku Button試してみなくちゃな…

2017-04-17 16:00:11 zundaの投稿 zundan@mastodon.zunda.ninja
icon

もいっこインスタンスつくるか(そうじゃない)

icon

2017-04-18T02:14:29.920590+00:00 app[web.1]: [68902273-70ab-462c-9245-42c2bf9bc2e0] method=GET path=/.well-known/webfinger format=json controller=WellKnown::WebfingerController action=show status=500 error='NoMethodError: undefined method `to_webfinger_s' for nil:NilClass' duration=14.73 view=0.00 db=0.00

icon

I had to remove the @ prefix on my user name.

icon

@tdtds 運用する手間が増えてきたところでインスタンスは使い捨てにしてデータベースだけ持ってまわればかいけつ☆

icon

このインスタンスは月23ドルくらいになりそうな雰囲気。現在は月14ドル。Workerをスケジューラに逃したらすこし安くなるのかも。

2017-04-17 18:02:05 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-17 18:02:10 zundaの投稿 zundan@mastodon.zunda.ninja
icon

@tdtds 各クラウドに…w

icon

@tdtds めんどうになったら止めといて、動かしたくなったら最初からやり直せるのがミソなんですう

icon

@jacopen rails db:migrate で復活するかもです

2017-04-17 20:28:13 zundaの投稿 zundan@mastodon.zunda.ninja
icon

あ、はいw

icon

@jacopen じゃなくて rake db:migrate でした。お騒がせしました

2017-04-18 06:49:36 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-18 06:52:38 zundaの投稿 zundan@mastodon.zunda.ninja
icon

にゃーん

icon

Current status

$ heroku pg:info
=== DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 11/20
PG Version: 9.6.1
Created: 2017-04-15 01:28 UTC
Data Size: 12.6 MB
Tables: 26
Rows: 3498/10000 (In compliance)

https://mastodon.zunda.ninja/media/6lFpO4ouc-B5va4IPrE

Attach image
icon

無料版Heroku Postgres、週末を前にいっぱいになりそう。

icon

S3も見とかないと

2017-04-18 08:25:43 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-18 15:04:54 zundaの投稿 zundan@mastodon.zunda.ninja
icon

インスタンスからインスタンスの状況をTootするようにしたい

icon

@hyuki デフォルトのアイコンはアプリのデプロイの時にrake assets:precompileが走ってdynoのファイルシステムに展開され、slugに書き込まれたのが見られます。んで、アプリの稼働中にアプリが取得したアイコンはS3がなければdynoのファイルシステムに追記される(と想像している)のですが、dynoが再起動された時にファイルシステムはslugの状態に戻っちゃいます。

icon

S3アドオン欲しいですよねえ…。あるいはmastodonをCloudinaryに対応させるか。

2017-04-18 15:51:43 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-18 15:51:51 zundaの投稿 zundan@mastodon.zunda.ninja
icon

フルスタックっていうと自宅にファイバー引くところから?

icon

やっぱり某ヘ社使うとフルスタックの底を浅くできてる感じがいいな

2017-04-18 15:59:48 zundaの投稿 zundan@mastodon.zunda.ninja
icon

@ikeji ウェハも作るかあw

2017-04-18 17:27:13 zundaの投稿 zundan@mastodon.zunda.ninja
icon

Current status (もうすぐ半分や…

$ heroku pg:info
=== DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 12/20
PG Version: 9.6.1
Created: 2017-04-15 01:28 UTC
Data Size: 13.1 MB
Tables: 26
Rows: 4104/10000 (In compliance)

2017-04-18 20:51:32 zundaの投稿 zundan@mastodon.zunda.ninja
icon

Procfileのbundle execの有無でメモリ使用量にどれだけ差があるか確認してみたら全然差がありませんでした

bundle execのあるMastodonのweb dynoのRSSはアクセスが全くない状態で101.02 MB (1枚目)。

bundle execのないMastodonのweb dynoのRSSはアクセスが全くない状態で101.92 MB (2枚目)。

https://mastodon.zunda.ninja/media/287kI4Q1haXHsoQJqAk https://mastodon.zunda.ninja/media/PaW-93L8YAugyKhEsoQ

Attach image
Attach image
2017-04-18 23:57:20 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-18 23:59:06 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-19 07:45:36 zundaの投稿 zundan@mastodon.zunda.ninja
icon

Current status - 半分超えましたし

$ heroku pg:info
=== DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 12/20
PG Version: 9.6.1
Created: 2017-04-15 01:28 UTC
Data Size: 14.1 MB
Tables: 26
Rows: 5393/10000 (In compliance)

icon

HEROKU=trueならworker dynoを止められる説が浮上。やってみよう。

config/puma.rb:
:
on_worker_boot do
if ENV['HEROKU'] # Spawn the workers from Puma, to only use one dyno
@sidekiq_pid ||= spawn('bundle exec sidekiq -q default -q push -q pull -q mailers ')
end
:

web=1 worker=1ではRSSはwebは296MB、workerは223MB。CPU負荷はどちらも大したことはない。

icon

さあどうだ

$ heroku ps:scale worker=0
Scaling dynos... done, now running worker at 0:Hobby

icon

リモートにTootが届いてない感じ。

$ heroku ps:restart web.1

icon

だめぽ。

$ heroku ps:scale worker=1

icon

とどいた。config/puma.rbのコードは意図どおりに動いてないのねん。

icon

あーw 1.2になってspawnしなくなったんだ

2017-04-19 11:48:46 zundaの投稿 zundan@mastodon.zunda.ninja
icon

Instance code has been updated to 59a7792 (1.2.2)

2017-04-19 13:48:53 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-19 14:04:36 zundaの投稿 zundan@mastodon.zunda.ninja
icon

データベースが溢れてきたら削除したくなるから!

icon

@hyuki0000 古い情報から消してくインスタンスつくれそうですねw。ちょっとstatusesテーブル覗いてみたらちゃんとcreated_atがありました。

icon

言語いろいろ検出されてた!

> select distinct(language) from statuses;
language
----------
pt
da
ar
fi
ru
de
fr
es
nl
en
hu
el
sv
no
fa
it
pl
ja
(18 rows)

2017-04-19 15:14:40 zundaの投稿 zundan@mastodon.zunda.ninja
icon

Current status:

$ heroku pg:info
=== DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 11/20
PG Version: 9.6.1
Created: 2017-04-15 01:28 UTC
Data Size: 14.4 MB
Tables: 26
Rows: 5789/10000 (In compliance)

icon

@ymmt Herokuでよければこんなんあります https://github.com/zunda/mastodon/wiki/UpgradeInstanceOnHeroku 手前味噌ですみませんが。

icon

増えてますよ?

heroku pg:info
=== DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 11/20
PG Version: 9.6.1
Created: 2017-04-15 01:28 UTC
Data Size: 14.5 MB
Tables: 26
Rows: 6019/10000 (In compliance)

2017-04-19 16:26:01 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-19 17:02:04 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-19 19:45:35 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-19 20:13:15 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-19 20:20:26 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-19 23:56:11 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-19 23:57:28 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-19 23:57:49 zundaの投稿 zundan@mastodon.zunda.ninja
icon

テキストエリアの内容にいちいちGPG署名つけてポストしてくれるブラウザ拡張(字数)

icon

Current status - やばい

heroku pg:info
=== DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 11/20
PG Version: 9.6.1
Created: 2017-04-15 01:28 UTC
Data Size: 16.1 MB
Tables: 26
Rows: 8193/10000 (In compliance, close to row limit)

icon

OK, I'll put this instance into maintenance mode in a couple of minutes to upgrade the database.

icon

This instance is now on a Heroku Postgres Hobby-basic :)

heroku pg:info
=== DATABASE_URL, PG_HOBBY_BASIC_URL
Plan: Hobby-basic
:
Created: 2017-04-20 18:31 UTC
Data Size: 13.8 MB
Tables: 26
Rows: 8210/10000000 (In compliance)
:
=== HEROKU_POSTGRESQL_COPPER_URL
Plan: Hobby-dev
:
Created: 2017-04-15 01:28 UTC
Data Size: 16.2 MB
Tables: 26
Rows: 8193/10000 (In compliance, close to row limit)

icon

S3に$0.01かかるよ、っていうアラートが来ましたよ。

icon

@t_trace 甘く見てました〜

icon

Current status

$ heroku pg:info DATABASE
=== DATABASE_URL, PG_HOBBY_BASIC_URL
Plan: Hobby-basic
Status: Available
Connections: 11/20
PG Version: 9.6.1
Created: 2017-04-20 18:31 UTC
Data Size: 15.0 MB
Tables: 26
Rows: 8236/10000000 (In compliance)

icon

Last 24 hours with the default puma process (2) and thread (5):

Web:
- Max total memory 321.1 MB
- Max response time: 255 ms median, 1,599 ms 95%
- Max throughput 21 requests/min
Worker:
- Max total memory 247.9 MB

Let's see if I can reduce total memory on the web dyno:

heroku config:set MAX_THREADS=3

icon

@t_trace なるほどなるほど

icon

@hyuki @t_trace HerokuはHobby dynoを2つとHobby-basicのPostgresで$23/月になりそうです。やっぱり高いですね…。(その分放っておけるんですけど。)Dynoを1つにできないかぼちぼち試してます。うまく行けば$7/月だけ安くなります。

2017-04-20 19:19:07 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-21 07:06:32 zundaの投稿 zundan@mastodon.zunda.ninja
icon

おっと

2017-04-21 07:14:46 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-21 07:14:47 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-21 07:38:17 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-21 07:39:01 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-21 07:39:34 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-21 07:39:35 zundaの投稿 zundan@mastodon.zunda.ninja
icon

@ms2sato 手元のぼっちインスタンスでは、pumaのスレッド数を5から3くらいに少なくしたほうがswapに突っ込んじゃうと可能性が低そうだなあと感じてます。もうすぐ確かめる!

icon

With decreased number of threads (3) on puma process (2):

Web:
- Max total memory: 286 MB
- Mat response time: 107 ms median, 735 ms 95%
- Max throughput: 15 request/min
Worker:
- Max total memory: 228 MB

Seems like I can combine two processes onto one dyno of 512 MB memory.

Plot is memory profile of the web dyno where puma threads are changed from 5 to 3 around 2017-04-21 01:00 UTC. https://mastodon.zunda.ninja/media/sTcqKyAhQbSKCz9fJ5E

Attach image
icon

https://github.com/zunda/mastodon/wiki/CreateInstanceOnHeroku に、rake mastodon:dailyをHeroku Schedulerに登録する手順を追加しました。

icon

OK. This instance is now running b1d4efc on https://github.com/zunda/mastodon/tree/zunda-ninja-on-heroku with

- heroku config:set MAX_THREADS=3
- heroku ps:scale web=1 worker=0

Let's see if the instance continue running healthy :)

Web site image
GitHub - zunda/mastodon at zunda-ninja-on-heroku
icon

Database status:

$ heroku pg:info DATABASE
=== DATABASE_URL, PG_HOBBY_BASIC_URL
Plan: Hobby-basic
Status: Available
Connections: 7/20
PG Version: 9.6.1
Created: 2017-04-20 18:31 UTC
Data Size: 17.4 MB
Tables: 26
Rows: 10903/10000000 (In compliance)

icon

@ms2sato ありがとうございます!

1 dynoにSidekiqを詰めようとするとpumaの2プロセス✕5スレッドでらメモリが512 MBから溢れそう、と書きたかったのでした。

こちらではアカウント1つのインスタンスが、puma 2プロセス✕3スレッドで6時間ほど稼働させてみてしてます。R14をもらうとしたらこれからかもですね…。

pumaとSidekiqを同居させるには、シェルからバックグラウンドに送る方法もありました: https://github.com/zunda/mastodon/blob/zunda-ninja-on-heroku/Procfile

Web site image
mastodon/Procfile at zunda-ninja-on-heroku · zunda/mastodon
2017-04-21 17:10:44 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-21 20:11:57 zundaの投稿 zundan@mastodon.zunda.ninja
icon

このインスタンス全然メール送ってこないのなんか変なのか…?

icon

@himamura mstdn.jpがそれ(というかきっかけの一つ)かも?

2017-04-21 21:37:02 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-21 21:38:04 zundaの投稿 zundan@mastodon.zunda.ninja
icon

にゃーん

2017-04-22 03:24:12 zundaの投稿 zundan@mastodon.zunda.ninja
icon

Database status

$ heroku pg:info DATABASE
=== DATABASE_URL, PG_HOBBY_BASIC_URL
Plan: Hobby-basic
Status: Available
Connections: 4/20
PG Version: 9.6.1
Created: 2017-04-20 18:31 UTC
Data Size: 19.2 MB
Tables: 26
Rows: 13878/10000000 (In compliance)

icon

Memory use and response time on this 1-dyno instance. The dyno has been using swap but response time is not too bad. I'm grad that it has swap (Private dynos don't) https://mastodon.zunda.ninja/media/BwyZZel2WhzjrN8GiTc

Attach image
2017-04-22 16:52:49 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-22 17:21:28 zundaの投稿 zundan@mastodon.zunda.ninja
icon

Database status

$ heroku pg:info DATABASE
=== DATABASE_URL, PG_HOBBY_BASIC_URL
Plan: Hobby-basic
Status: Available
Connections: 8/20
PG Version: 9.6.1
Created: 2017-04-20 18:31 UTC
Data Size: 20.1 MB
Tables: 26
Rows: 15356/10000000 (In compliance)

2017-04-22 22:12:56 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-22 23:53:39 zundaの投稿 zundan@mastodon.zunda.ninja
2017-04-22 23:55:46 zundaの投稿 zundan@mastodon.zunda.ninja