加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 17:55:41 所属栏目:Linux 来源:网络整理
导读:我们有一个非常大的(多GB)Nginx缓存目录用于繁忙的站点,我们偶尔需要一次清除所有目录.我在过去通过将缓存文件夹移动到新路径,在旧路径上创建新缓存文件夹,然后rm -rfing旧缓存文件夹来解决这个问题. 然而,最近,当我需要在忙碌的早晨清除缓存时,来自rm -rf的
我们有一个非常大的(多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是自愿和非自愿的上下文切换

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读