Mastodonで利用しているObjectStorageの遅さをどうにかしようとした(2)

前回の後解決したのですが書き忘れていたので 前回はminioを利用しようとし、失敗してしまったので、こちらのブログを参考に一度ローカルにアップロードし、それをリモートに転送するようにすることにしました。 今回は簡単なプログラムを書くことで定期的にローカルからリモートへ反映させるようにし、0byteのファイルは転送せず削除するようにするついでに重いsyncコマンドの実行を回避することで数分おきに同期することを可能にしました。 Mastodon側は今はメデイアのアップロードに非同期に処理されるv2を利用するようになり、その部分で不具合を生じたためこれはv2のAPIの中身をv1に書き換えることで解決しました。

Mastodonで利用しているObjectStorageの遅さをどうにかしようとした(1)

ますとどんちほーでは画像等を保存するObjectStorageに料金と安定性からScalewayを利用しています ところが最近これの調子が悪く、画像のアップロードに何分も待たされる状態が続いているのでそれをどうにかしようとして失敗した話です(別の方法も試すつもりなのでそれはそのうち書きます) minio gatewayがキャッシュをしてくれるという話があったのでそれを使うことにしました これの設定自体はminioのドキュメントの通りに設定するだけで、nginxを利用することでhttps経由でのアクセスも手間はかかりませんでした。 Mastodonの設定も変更し、使える状態にしてからアップロードの動作を確認すると、その遅さは全く改善されず、minioのキャッシュについて調べていると

VultrとLinodeの比較

2022/01/04 VultrのDDOS Protectionが東京リージョンでも利用可能になっていたので更新 2022/06/07 LinodeでFirewallが利用可能に、VultrでGPUが利用可能になっていた、LinodeのブロックストレージがNVMeに変更され高速になっていたので更新 それぞれ東京リージョンのものについて触れます。

ScalewayのBaremetalのベンチマーク

ベータ期間中に借りたときのベンチマーク結果です(ベータ終了後の価格だとVultrのBaremetalの方が良いかも...?) Beta用のプランなのでこれと同一のスペックのものは見当たりませんでした CPU:Intel Xeon E3 1240v6 RAM:32GB Disk:250GB

ObjectStorage比較メモ

オブジェクトストレージの比較です。 S3/GCSは複雑なので省略 カッコ内の円表記は$1=130円、€1=140円として計算し、雑に切り上げたり切り捨てたりしたもので、正確ではありません 2019/10/

Golangのwasmを別スレッドで非同期に実行

Goのwasmでの実行が少し前に試したときにうまく行かなかった理由がメモリを1GBも確保して溢れている事がわかり(こちらの記事を偶然見つけ)、実行にはできたのですが、長時間かかる処理を行うとサイトが丸ごと固まってしまいました。 WebAssemblyは同一スレッドで動く事が原因と判明し、WebWorkerを使えば非同期に実行が可能でした Golang側で非同期に処理を行っても(go func利用)同期実行されてしまうので複数スレッドで実行する場合はJavaScript側で複数のWebWorkerを動かす必要がありそうでした。 動かした時のコードを残しておきます <