如果负载较高则暂停删除目录

如果负载较高则暂停删除目录

我有一个想要删除的目录列表。但是当我一次删除所有目录时,负载会突然增加。有人有脚本示例吗?该脚本会等到负载低于某个水平后再继续删除(循环交互)

答案1

更好的是,使用ionice

ionice -c3 ./deletion-script

这将导致您的删除命令仅在磁盘 IO 空闲时运行,因此其优先级最低。网络城市有一篇关于所有变体及其使用方法的精彩小文章。

答案2

ionice可能是最好/最简单的解决方案,但它实际上只是延缓了不可避免的事情,并且可能只是意味着延长中等负载而不是短时间的高负载。

这里有一篇很好的文章http://www.depesz.com/2010/04/04/how-to-remove-backups/采用系统控制的方法。

更改 io 调度程序、删除日志、atime 和 diratime 也是导致此问题的原因。还有一个不同的删除二进制文件fastrm,您可以在此处找到手册http://linux.die.net/man/1/fastrm

不要在家尝试

前段时间,我们测试了删除 TB 级数据的更快方法。最后,事实证明,启动rmmv使用 中断该过程实际上更快^c。然后使用 强制重新启动机器fsck,这将清理 inode 并释放文件系统上的后续空间。

它的效果出奇地好,而且比传统的删除方法快得多——但我永远不会在生产系统上这样做。永远。

相关内容