代码之家  ›  专栏  ›  技术社区  ›  user82238

非常慢的open()(6秒以上)在完整的UFS上刚刚开始进行大规模删除?

  •  1
  • user82238  · 技术社区  · 15 年前

    音量变满。我们仍在尝试对它进行写操作,而且open()会立即返回-1。

    现在,一个明显的想法是,删除操作会让文件系统保持忙碌,open()只会花费很长时间……但是有没有关于这种行为的具体知识呢?

    2 回复  |  直到 15 年前
        1
  •  0
  •   Chris Quenelle    15 年前

    也许执行“大规模删除”的程序可以更改为在有问题的文件系统上更平稳地运行。如果它执行查询以查找要删除的文件,则可能不是open调用超时。为了验证这个理论,有没有什么方法可以设置一个cron作业,在磁盘已满的状态下只删除一个名称已知的文件?“批量删除”程序如何决定要进行的“打开”调用?

    在写入停止工作之前,还可以控制磁盘利用率的百分比。你也可以试着把这个设置到一个较低的百分比。如果通过等待文件创建步骤返回-1来检测“磁盘已满”状态,则应考虑向代码中添加显式检查,以便在文件系统已满一定百分比时采取纠正措施。

        2
  •  0
  •   Benoît    15 年前

    nologging 选择?)。此外,如果您的fs快满了,open无论如何都需要一些时间来为新inode找到空间。