node.js - Raspberry Pi 2 上的 MongoDb 性能

标签 node.js linux mongodb performance raspberry-pi

我在带有 raspbian 的 Raspberry Pi 2 上使用 Monk 在 NodeJS 应用程序中运行 MongoDb。

虽然它运行正常,但数据库访问速度非常慢。

我在一张表中拥有大约 170 万份文件。我称之为简单值(根据时间戳记的最后一条记录)和稍微复杂一点的值(聚合 30 个值)。该应用程序每秒写入 2 个新条目(永久地,它是一种日志记录)。客户端要求一些值,每秒 1-3 个。

非常简单的大约需要 8 秒,稍微复杂的需要 20 秒。它不会随时间改变。 CPU 一直处于负载状态,30% 到 75%,我通过 WiFi 只为一 (1) 个客户端提供服务。

当结果返回时,值是正确的。

版本信息:

  • MongoDb:v2.4.10
  • 和尚:v3.1.3
  • Node :v6.3.1
  • 操作系统:Raspbian GNU/Linux 8 (jessie)
  • 内核:树莓派 4.4.11.-v7+

问题:

是否知道在 Raspberry 2 上它有 > 1 个 mio 记录和每秒 2-4 个请求那么慢?或者有什么我可以做的吗?

该应用程序完全天真,非常直接。

最佳答案

当您查看 Raspberry PI 的性能时,您必须注意两个重要的限制:

  1. RAM:您在型号 2 上只有 1GB 的 RAM。在您的用例中,DB 索引可能是从 SD 卡和 RAM 中分页的。
  2. SD:您没有像普通台式电脑那样的完整 Sata 接口(interface)。从 SD 读取和写入比任何普通 HD 都慢很多。您可以尝试使用更高级别的 SD 卡。

说没有DB、query、program的细节,我们无法做更精确的分析。您可以做的是使用“top”或任何类似的命令来显示 RAM 的使用情况、CPU 负载和磁盘 IO。

关于node.js - Raspberry Pi 2 上的 MongoDb 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41873394/

相关文章:

mongodb - 如何使用 MongoDB 转移资金?

mongodb - 为 $and 中给定查询的 mongodb 集合添加索引

node.js - Mongoose ,MongoDB : How to save() document after push()?

c - 是否可以覆盖/绕过 nscd?

node.js - cMalformedResponse:Webhook错误(206),同时看似有效的Webhook响应-Node.js中对Google Dialogflow应用的操作

linux - Nagios:snmpget 工作但 check_snmp 超时

linux - 编译到内核中的驱动程序的 init 函数调用

node.js - 如何获取 Mongoose 数组中最后一个元素的数据?

javascript - 下载 npm dist 包,无需安装 npm

Node.js 永远模块 - 获取正在运行的脚本的路径?