【问题标题】:ArangoDB inserts are extremely slowArangoDB 插入非常慢
【发布时间】:2014-07-01 21:22:28
【问题描述】:

我刚从版本 1.4 升级到 2.1.1 并注意到改进,但插入速度仍然非常慢,随着更多文档的插入而变慢。

我正在从旧数据库迁移到新数据库,一次插入 1000 个。以下是一些日志供您阅读:

========= [26.28s]
BATCH #1 [0s]
========= [0s]
CREATED: 1000 [0s]
UPDATED: 0 [0s]
SUBTOTAL: 1000 [0s]
BATCH TIME: 26.279s [0s]
TOTAL BATCH TIME: 26.279s [0s]
AVG TIME PER BATCH: 26.279s [0s]
TOTAL TIME: 29.277s [0s]

========= [29.919s]
BATCH #2 [0.001s]
========= [0s]
CREATED: 2000 [0s]
UPDATED: 0 [0s]
SUBTOTAL: 2000 [0s]
BATCH TIME: 29.919s [0s]
TOTAL BATCH TIME: 56.198s [0s]
AVG TIME PER BATCH: 28.099s [0s]
TOTAL TIME: 61.341s [0s]

========= [33.698s]
BATCH #3 [0s]
========= [0s]
CREATED: 3000 [0s]
UPDATED: 0 [0s]
SUBTOTAL: 3000 [0s]
BATCH TIME: 33.697s [0s]
TOTAL BATCH TIME: 89.89500000000001s [0s]
AVG TIME PER BATCH: 29.965000000000003s [0s]
TOTAL TIME: 97.755s [0s]

========= [62.653s]
BATCH #10 [0s]
========= [0s]
CREATED: 10000 [0s]
UPDATED: 0 [0s]
SUBTOTAL: 10000 [0s]
BATCH TIME: 62.653s [0s]
TOTAL BATCH TIME: 438.422s [0s]
AVG TIME PER BATCH: 43.842200000000005s [0s]
TOTAL TIME: 474.096s [0s]

我正在使用ArangoDB NodeJS API 并运行以下代码(每批 1000 次):

db.document.create("users", user)

我在这里遗漏了什么,或者 ArangoDB 对任何具有 >1000 条记录的数据库来说都是一个失败的原因?

【问题讨论】:

  • 要确定问题出在哪里(数据库服务器、node.js 驱动程序、连接),您能否尝试运行以下命令并在此处发布结果? arangob --test-case document --requests 1000 --concurrency 1 --server.endpoint tcp://127.0.0.1:8529
  • 您是否还可以检查您要插入的集合是否将其waitForSync 选项设置为true?如果是这样,那么每次插入都会触发全盘同步操作并等待操作系统确认同步完成。这可能非常慢,具体取决于您使用的磁盘类型。如果集合或单个保存操作的waitForSync 设置为true,您可以尝试将其关闭并重试插入吗?

标签: node.js performance insert arangodb


【解决方案1】:

请查看您收藏的“waitForSync”属性。 我在 waitForSync 方面取得了以下经验,创建了 1000 个文档并为 arango 使用了 nodejs 驱动程序:

waitForSync 真 13,3 秒 waitForSync 假 0,5 秒

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 2014-06-28
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 2017-11-01
    相关资源
    最近更新 更多