我在带有 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 的性能时,您必须注意两个重要的限制:
- RAM:您在型号 2 上只有 1GB 的 RAM。在您的用例中,DB 索引可能是从 SD 卡和 RAM 中分页的。
- 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/