基本服务器设置(Heroku)

Heroku 是一家商业云主机提供商。这是部署oTree的最简单的方法。

Heroku的免费服务器足够测试应用使用,但一旦你准备开始真正的实验,你应当将其升级为付费服务器,这样可以处理更多的通信。不过,Heroku并不昂贵,因为你只需要为你实际使用的时间付费。如果你的实验只持续1天,你可以在其他时候关闭你的服务器和附加服务,这样你只需支付月费的1/30。通常这意味着你可以花几美元做一次实验。

Heroku设置

部署至Heroku推荐方法是使用 oTree Hub,这将自动完成Heroku的设置。这对于公共项目是免费的。

oTree Hub 还提供错误/性能监控和Sentry服务。

(通过命令行和git进行部署的旧说明在 here 然而,你很可能在使用这种方式时遇到问题并且我不会提供任何支持。)

服务器性能

Heroku提供不同的性能等级的资源,如服务器和数据库。你需要何种等级的性能取决于你应用的通信流量以及它是如何编写的。

性能是很复杂的事情因为其影响因素众多。 oTree Hub的Pro订阅提供一个”monitor”模块,用来分析你的日志以发现性能问题。

一般的建议:

  • 将oTree升级至最新版本
  • 使用浏览器bot来对你的应用进行压力测试。
  • 在较高等级服务器中,Heroku提供一个”Metrics”页面。可查看”Dyno load”。如果用户认为页面加载速度慢并且你的dyno load持续大于1,那么你应当使用更快的服务器。(但不要运行超过1个web服务器。)
  • 如果你的dyno load持续小于1但是页面加载时间仍很慢,那么瓶颈可能是其他因素如Postgres数据库。
  • RAM使用应当不可能超过限制。如果真的发生了,请联系chris@otree.org.

性能要求最高的场景是下面这些的组合(1) 多个轮次, (2) 玩家在每个页面上仅花费几秒时间, (3) 多个玩家同时进行游戏,因为这些场景会导致每秒页面请求数很高,这会使服务器过载。考虑使用 实时页面 改写这些游戏,这会使得性能大幅提高。