【发布时间】:2015-12-03 17:42:07
【问题描述】:
我似乎在试图获得接近文档中所述性能的任何地方时遇到了真正的问题(约 700 - 2000 tps,VM 为:2 个 vCPU 4GB RAM)。我已经在本地虚拟机、本地机器和一些 AWS 虚拟机上进行了尝试,但我无法接近。 - 我在 AWS VM 上达到的最大值是 80 tps。
我尝试更改 orion 的 -dbPoolSize 和 -reqPoolSize 并使用 ulimit 将其设置为 MongoDB 建议的值 - 但我所做的所有更改似乎都没有让我接近。
我已经按照文档中的建议在 _id.id、_id.type 和 _id.servicePath 上设置了索引 - 后者让我从 40 tps 增加到 80 tps。
我应该将 Orion 或 Mongo 的任何配置选项设置为远离默认设置,这会让我更接近吗?还有其他性能提示吗?文档中指向测试脚本的链接无效,因此我无法查看示例。
我已经使用 Node.js 创建了自己的测试脚本,并且我已经使用可变数量的并发连接和 1 到 2 个负载注入器测试了更新和查询。
从“顶部”的输出来看,负载来自 Mongo,因为它几乎耗尽了 CPU,但向 VM 添加更多内核并不会改变统计数据。虚拟机有 7.5GB 或 15GB 的 RAM,所以 mongo 应该能够将所有数据放入内存中以获得极快的性能?
我已经使用 mongostat 看到从 orion 到 mongo 的连接随着 -dbPoolSize 选项的变化而变化,但这并没有产生更好的性能。
您能提供的任何帮助将不胜感激。
我曾尝试将 CentOS 6.5 和 6.7 与 Orion 0.25 和 0.26 以及 MongoDB 2.6 与约 500,000 个实体一起使用
我的测试脚本和数据是on GitHub
到目前为止,我只在没有订阅的情况下进行了测试,但我已经准备好使用订阅进行测试的脚本 - 但我想在添加订阅之前获得一个好的基线。
我的数据是围绕英国国家/地区的停车位及其区域及其外代码(邮政编码的第一部分)建模的。这是使用 servicePaths 将它们拆分为 outcode 中的停车场。
【问题讨论】:
-
您能否编辑帖子以添加一些有关用于强调 CB 的操作类型的详细信息,好吗?您正在使用的更新和查询操作的“模板”就可以了。
-
此外,您能否编辑帖子以澄清实体集的一部分,您是否有订阅?
-
您好 fgalan,我已更新问题并添加了指向我的测试脚本和数据的链接。
-
如果您可以提供代码发送到 Orion 的“裸请求”,那就太好了,即请求行(动词 + URL)+ HTTP 标头 + 有效负载(如果适用)。如果不仔细查看,从代码本身推断此类信息将很难(此外,我不是 JavaScript 专家)。我的意思是这样的:gist.github.com/fgalan/ff035ae09d98b0842771
-
此外,假设您的实体具有规则形状(即所有实体都具有相同的属性),如果您可以在问题中添加“模型实体”,例如
db.entities.findOne()在 mongo shell 的输出。
标签: mongodb amazon-web-services amazon-ec2 fiware fiware-orion