Mongodb Meteor网站加载时间过长

Mongodb Meteor网站加载时间过长,mongodb,meteor,Mongodb,Meteor,我有一个使用meteor构建的Web应用程序。 规格如下: Meteor version : 1.8 Mongo Version : 4.0.5 以下是我使用过的软件包列表: jquery@1.11.10 双程证:bootstrap@3.3.6 铁:路由器 反应性-var@1.0.11 真棒:真棒 blaze@2.1.8 帐目-password@1.5.1 捷运:mathjax email@1.2.3 时刻:时刻 ian:帐户ui引导-3@1.2.89 流星base@1.4.0 mongo@1

我有一个使用meteor构建的Web应用程序。 规格如下:

Meteor version : 1.8
Mongo Version : 4.0.5
以下是我使用过的软件包列表:

jquery@1.11.10
双程证:bootstrap@3.3.6
铁:路由器
反应性-var@1.0.11
真棒:真棒
blaze@2.1.8
帐目-password@1.5.1
捷运:mathjax
email@1.2.3
时刻:时刻
ian:帐户ui引导-3@1.2.89
流星base@1.4.0
mongo@1.6.0
闪耀html-templates@1.0.4
session@1.2.0
tracker@1.2.0
logging@1.1.20
reload@1.2.0
ejson@1.1.0
spacebars@1.0.12
标准缩小器-css@1.5.2
标准缩小器-js@2.4.0
jss:jstree
流星黑客:潜艇经理
aldeed:模板扩展
雷伍德:发布合成
壳-server@0.4.0
触笔@=2.513.13
帐目-base@1.4.3
铁:中间件-stack@1.1.0
http@1.4.1
ecmascript@0.12.4
动态的-import@0.5.0
sha@1.0.9
简单:json路由
underscore@1.0.10
aldeed:简单模式
rafaelhdr:谷歌图表
流星:聚合

webApp托管在AWS ec2实例上,具有16GB RAM和04个处理器。应用程序使用pub-sub方法。现在的问题是,每当有超过50个并发连接时,CPU的使用率就超过了60%,而webApp的使用速度就慢得令人恼火。根据我的发现,这可能是因为两个原因,要么是我使用的发布子模式太重,即我在每个页面上广泛使用了数据库订阅,而meteor与它保持着持续的开放连接。导致大量资源使用的另一个原因可能是mongoDB的使用。根据dbStats,db使用超过06GB的RAM。详情如下:

我不知道为什么会有这种行为。我能想到的唯一方法是点击并试用(删除订阅,然后测试),但这太耗时,而且也不能完全证明


有人能帮我解决一下如何继续吗。

根据您的应用程序的设计方式,从数据角度来看,这种性能不足可能有几个原因

一些建议:

  • 检查集合中是否有索引
  • 避免在发布过程中进行聚合,即取消数据库规范化,而是发布游标数组,限制文档大小等
  • 过滤查询中无用的字段
  • 限制相关部分的数据量(延迟加载和分页订阅)
  • 对于您经常使用的集合,请考虑全局pub/sub,而不是根据基于路由的模式频繁地重新加载它们
  • 跟踪基于小组件的潜艇,并尝试将其置于更高的级别,以避免制造30艘潜艇而不是一艘
我的最佳猜测是,您可能需要合理化数据库“结构”并尽可能避免数据聚合


您还可能在某些地方误用了低级收集api(例如
cursor.observe()
stuff)。

galaxy文档可能对您有所帮助:以及