【问题标题】:Failed to write to disk tarantool, how to free up?tarantool 写入磁盘失败,如何释放?
【发布时间】:2016-07-26 21:40:39
【问题描述】:

我在我的空间中插入了大量的元组,结果 tarantool 告诉我

错误:无法写入磁盘

关于插入和删除操作。

我应该怎么做才能释放空间,以便继续使用此实例。我不关心数据,如果需要,可以删除。

我试过了:

my_space:truncate{}

但它导致了相同的错误消息。我是 unix 系统的新手(在这种情况下是 freebsd)和一般的 tarantool。

编辑

我的配置

box.cfg {
  listen = 3305;
  background = true;
  slab_alloc_arena = 5;
  slab_alloc_minimal = 16;
  slab_alloc_maximal = 1048576;
  slab_alloc_factor = 1.06;
  snapshot_period = 3600;
  snapshot_count = 6;
  panic_on_snap_error = true;
  panic_on_wal_error = true;
  snap_io_rate_limit = nil;
  wal_mode = "write";
  wal_dir_rescan_delay = 2.0;
  readahead = 16320;
  log_level = 5;
  logger_nonblock = true;
  too_long_threshold = 0.5;
}

【问题讨论】:

    标签: tarantool


    【解决方案1】:

    您需要设置快照守护程序,这是 Tarantool 中的一项功能,可自动回收预写日志 (.xlog) 文件使用的空间。 这是手册中的相关章节https://tarantool.org/doc/book/configuration/index.html#snapshot-daemon

    同时,您可以手动删除所有 *.xlog 文件(只需 rm -rf *.xlog,但保留一个打开的,即名称中最大的那个),并制作快照(发送 SIGUSR1 信号到守护进程)。

    【讨论】:

    • 我在 box config snapshot_period = 3600; snapshot_count = 6; wal_mode = "write"; 上有这行。我在路径 /var/db/tarantool/instancename link 上找到了带有 *.xlog 文件的目录。我在这个目录上还有 6 个 *.snap 文件。此外,在最新的 *.snap 文件按更改日期降序排序之前,我还有 23 个 .xlog 文件。
    • 我没有尝试向守护进程发送信号,但尝试通过此命令box.snapshot() 进行快照。 https://tarantool.org/doc/book/box/admin.html。得到error: can't save snapshot, errno 28 (No space left on device)。我将尝试手动删除 *.xlog 文件,然后按照您的建议尝试制作快照
    • 我按照你说的手动删除了 *.xlog 文件并且没有触及 *.snap 文件,之后box.snapshot() 终于返回了 okmy_space:truncate{}成功执行!在目录中添加了新的 *.snap 文件,将快照数量增加到 7。我仍然想知道它在磁盘空间方面是如何解决的,因为我的旧快照的大小是 1.7Gb,正如我所说,我没有删除任何快照文件。我的问题已经解决了,谢谢你的帮助,@Kostja。我在调查中提供了详细信息,也许没有必要,但也许它会帮助人们更好地了解正在发生的事情。
    猜你喜欢
    • 1970-01-01
    • 2021-01-18
    • 2013-08-10
    • 2014-09-17
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 2018-11-07
    • 2013-01-02
    相关资源
    最近更新 更多