【问题标题】:Strange disk space utilization by collections in arangodbarangodb 中集合的奇怪磁盘空间利用率
【发布时间】:2015-10-31 23:04:52
【问题描述】:

我有 2 个集合(边缘集合)并且都有相似类型的数据。每个都有大约 40 万个文档。但是其中一个集合占用了两倍多的磁盘空间。我想知道为什么会这样。我做了很多更新/替换。可能是因为 arangodb 保留了所有的修订版吗? 90% 的空间被数据文件占用。如果是因为修订,我该如何禁用持久修订。

【问题讨论】:

  • 通过查看“数字”,我发现死文档的大小很大。如何禁用保存死文档?
  • doCompact 顺便设置为 false
  • ArangoDB 为MVCC 保留revisions,但原因也可能是数据文件的quadratic growth。例如,如果超过 512MB 的分配空间,则大小会翻倍至 1024MB,即使实际上只需要 513MB。您的一个集合目前可能为 511MB,另一个略高于 512MB,导致后者的大小增加了一倍。
  • 我有 469964 个文档,148 mb 磁盘用于活动,7805222 个文档,2.4 GB 用于死文档。如何禁用修订。 doCompact 设置为 false,因为我们遇到了性能问题,因为磁盘 i/o 一直很重。
  • doCompact 设置为false 实际上会导致文档的旧版本永久保存在数据文件中。将其设置为true 将启动该集合中的清理过程。清理由后台线程执行,并将与该集合中的其他操作交错运行。如果大多数数据来自死文档,它可能会重写集合的所有数据文件。如果数据文件中的大多数文档都是死修订版,最终结果应该是磁盘使用量要少得多。

标签: arangodb


【解决方案1】:

通常,压缩线程旨在清理未使用的 WAL 文件。这已经由 ArangoDB 完成。因此使用该空间的文件不再显示在ls 中。

这种情况是由于禁用压缩线程以节省系统性能引起的,因此一次释放了许多文件。

但是,由于某种原因,arangod 没有关闭文件句柄,导致文件系统没有释放已删除文件的空间。

这可以通过重新启动 ArangoDB 守护程序来解决 - 在关闭时,持有的文件句柄被关闭并释放空间。

同时,非关闭 WAL 文件的问题已得到修复,并且从 ArangoDB 2.8.6 开始提供

【讨论】:

    猜你喜欢
    • 2021-10-24
    • 1970-01-01
    • 2014-11-09
    • 2018-05-25
    • 2021-12-14
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    相关资源
    最近更新 更多