linux – 如何防止子树删除(`rm -rf`)使其他磁盘I / O进程无法使用?

前端之家收集整理的这篇文章主要介绍了linux – 如何防止子树删除(`rm -rf`)使其他磁盘I / O进程无法使用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个非常大的(多GB)Nginx缓存目录用于繁忙的站点,我们偶尔需要一次清除所有目录.我在过去通过将缓存文件夹移动到新路径,在旧路径上创建新缓存文件夹,然后rm -rfing旧缓存文件夹来解决这个问题.

然而,最近,当我需要在忙碌的早晨清除缓存时,来自rm -rf的I / O正在使我的服务器磁盘访问进程挨饿,因为Nginx和它前面的服务器都是读取密集型的.我可以在cpu处于空闲状态时观察负载平均爬升,并且rm -rf占用iotop中98-99%的磁盘IO.

我在调用rm时尝试过ionice -c 3,但它似乎对观察到的行为没有明显的影响.

有没有办法驯服rm -rf以更多地共享磁盘?我是否需要使用其他技术来从ionice中获取线索?

更新:

有问题的文件系统是AWS EC2实例存储(主磁盘是EBS). / etc / fstab条目如下所示:

/dev/xvdb       /mnt    auto    defaults,nobootwait,comment=cloudconfig 0       2

解决方法

All data gathered from this page.以下是删除大型文件目录的一些选项.查看有关如何生成详细信息的文章.
Command                                 Elapsed System Time %cpu cs1* (Vol/Invol)
rsync -a –delete empty/ a                10.60      1.31    95%  106/22
find b/ -type f -delete                  28.51      14.46   52%  14849/11
find c/ -type f | xargs -L 100 rm        41.69      20.60   54%  37048/15074
find d/ -type f | xargs -L 100 -P 100 rm 34.32      27.82   89%  929897/21720
rm -rf f                                 31.29      14.80   47%  15134/11

* cs1是自愿和非自愿的上下文切换

原文链接:https://www.f2er.com/linux/400324.html

猜你在找的Linux相关文章