【问题标题】:Why is it taking so long for Meteor to load my data on Heroku?为什么 Meteor 将我的数据加载到 Heroku 需要这么长时间?
【发布时间】:2012-12-06 10:12:43
【问题描述】:

我在 Heroku(免费层)和 MongoHQ 上使用 Meteor。我的应用程序现在非常简单,它从一个集合中加载 3-4 个条目,但是当我将它部署到 Heroku 时,我看到了荒谬的加载时间(1-2 分钟)。 HTML 会立即呈现。当我部署到 Meteor.com 的免费服务器时,加载时间要短得多,但对于 4 条小数据,加载时间仍然约为 15 秒。当我在本地部署时,我没有看到任何这种情况,应用程序会立即从数据库中提取数据。

值得注意的是,我认为这不是 Heroku 的“闲置”问题。即使我已经有一个刚刚打开应用程序的浏览器窗口,如果我使用其他浏览器并重试,我仍然会得到 1-2 分钟的加载时间。但是,一旦加载了数据,性能就会恢复正常,我可以毫无问题地进行读写。

我错过了什么?我在控制台中没有看到任何错误,mongo 在日志中显示了几个查询,并显示它正在快速响应 4 个文档,但显然在中间的某个地方出现了交通堵塞。非常感谢您对此提供的任何帮助,如果我无法通过这个 Meteor 现在对我的需求毫无用处。

更新:我一直在 Firebug 中密切关注它,看起来性能在很大程度上不一致。有时简单的刷新需要 1 分钟,有时需要 10 秒。但我注意到的是,当它的速度很慢时,它会获取 sockjs/info 文件,然后就在 sockjs POST 中止(有时多次)之后。当它运行得很快时,POST 和后续的 POST 运行顺利

Slow:
GET http://pocleaderboard.herokuapp.com/sockjs/info 200 OK 22ms
POST http://pocleaderboard.herokuapp.com/sockjs/029/su0d77fb/xhr Aborted
GET http://pocleaderboard.herokuapp.com/sockjs/info 200 OK 27ms
POST http://pocleaderboard.herokuapp.com/sockjs/132/uljqusxd/xhr Aborted
GET http://pocleaderboard.herokuapp.com/sockjs/info 200 OK 28ms
POST http://pocleaderboard.herokuapp.com/sockjs/154/kcbr6a5p/xhr Aborted

Fast(er):
GET http://pocleaderboard.herokuapp.com/sockjs/info 200 OK 1.08s
POST http://pocleaderboard.herokuapp.com/sockjs/755/xiggb555/xhr 200 OK 1.02s

【问题讨论】:

  • 根据我的经验,如果您使用 Heroku 免费的任何东西,它的速度就像 ****。 heroku 非常适合在那里获取测试应用程序,但是如果您想要速度,您必须付费,我非常怀疑它与您的运行有什么关系,只是 heroku 是 heroku(即免费版本)

标签: performance mongodb heroku meteor sockjs


【解决方案1】:

Meteor 在本地加载速度如此之快,因为它不依赖于您的互联网连接,并且文件可以从您的硬盘驱动器中读取,无需下载。 一旦加载数据,它在您托管的任何地方都是一样的,因为客户端(您)在缓存的 mongo 数据库上执行所有操作,然后等待服务器说操作是否正常。

但是对于 Heroku 的加载时间,我不知道,抱歉!

更新: 这些是 Meteor 使用的 SockJS 的长拉。 通常,这些拉取只会在热代码推送时中止(添加/更改/删除文件时)。

您或 Heroku 似乎都在目录中写入或更改了某些内容。 因为那时Meteor可能会发起热代码推送。

【讨论】:

    【解决方案2】:

    Heroku 可能不支持 web-sockets,这意味着您会被较慢的轮询方法卡住。看到这个: https://devcenter.heroku.com/articles/using-socket-io-with-node-js-on-heroku

    【讨论】:

      猜你喜欢
      • 2013-11-02
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 2011-12-07
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多