サーバの基本設定 (Heroku)

Heroku は商用のクラウドホスティングプロバイダです。oTree を導入する最もシンプルな方法です。

Heroku の無料プランは、アプリのテストには十分ですが、研究を開始する準備ができたら、より多くのトラフィックを処理できる有料サーバにアップグレードする必要があります。しかし、 Heroku は、実際に使用した時間分だけ支払うので、かなり安価です。1 日だけ試験を行う場合、 dyno やアドオンをオフにすれば、月額費用の 1/30 で済みます。多くの場合、わずか数ドルで試験を行うことができるのです。

Heroku のセットアップ

To deploy to Heroku, you should use oTree Hub, which automates your server setup and ensures your server is correctly configured.

oTree Hub は、エラーやパフォーマンスの監視や Sentry サービスも提供しています。

サーバのパフォーマンス

Heroku では、 dyno やデータベースなどのリソースに対して、さまざまなパフォーマンス層を提供しています。どの層が必要かは、アプリのトラフィック量やコードの書き方によって異なります。

パフォーマンスに影響を与える要因は多岐にわたるため、パフォーマンスは複雑なテーマです。oTree Hub の Pro プランには、パフォーマンスの問題を特定するためにログを分析する "monitor" セクションがあります。

一般的なヒント:

  • oTree を最新バージョンにアップグレードする
  • ブラウザボットを使用して、アプリのストレステストを行う
  • 高い層の dyno では、Heroku は "Metrics" タブを提供しています。 "Dyno load" を見てください。ユーザがページの読み込みに時間がかかっているのに、 dyno load が 1 以上を維持している場合は、より高速な dyno を導入する必要があります。 (ただし、1 つ以上の Web dyno を実行しないでください。)
  • dyno load が 1 未満でもページロード時間が遅い場合、ボトルネックは Postgres データベースなど他にある可能性があります。

最も負荷の高いセッションは、 (1)ラウンド数が多い、(2)プレイヤーが各ページに数秒しか滞在しない、(3)多くのプレイヤーが同時にプレイしている、が組み合わさったセッションです。これらのセッションでは、1秒あたりのページリクエスト数が多いため、サーバーに負荷がかかります。このようなゲームでは ライブページ を使用することで、より高速なパフォーマンスを実現することができます。