有一个有 900 万行的数据库,有 300 万个不同的实体。每天使用 perl 驱动程序将这样的数据库加载到 MongoDB 中。它在第一次加载时运行平稳。然而,从第二个、第三个等开始,这个过程真的变慢了。它时不时地阻塞很长时间。
我最初意识到这是因为每 60 秒自动刷新到磁盘,所以我尝试将 syncdelay 设置为 0 并尝试了 nojournalling 选项。我已经索引了用于 upsert 的字段。我还观察到阻塞是不一致的,并且对于同一条线路并不总是同时发生。
我有 17 克内存和足够的硬盘空间。我正在使用一个仲裁器在两台服务器上进行复制。我没有在后台运行任何重要的进程。这种阻塞有解决方案/解释吗?
更新: mongostat 工具在“res”列中说使用了大约 3.6 G。