你在这里


删除

Linux下用rsync快速删除大批量文件

James Qi 2012年8月6日 - 21:59 发布

  前些天写了一篇博文《慢速删除大批量文件,降低服务器硬盘负载压力》,后来用这个办法来实际删除文件发现确实对服务器硬盘没有特别压力,但删除的速度非常慢,不是一般的慢,对于大数据的小文件,过了好些天竟然还没有把文件列表搞出来,这样的实用性也大打折扣。
  今天为了在一块已经占满的硬盘上腾出空间,又去找了用rsync同步目录来删除大量文件的办法,这个办法以前见过,也使用过,感觉与rm相差不是很大,这里依然记录一下:

自由标签:

慢速删除大批量文件,降低服务器硬盘负载压力

James Qi 2012年7月18日 - 10:24 发布

  在我们一些用Drupal搭建的大数据量网站中,Boost模块产生的缓存文件数量非常多,以至于运行cron期间无法更新完毕,我们后来就采用了不自动更新缓存文件,而是人工根据需要在服务器上直接删除缓存文件的办法。

  但当缓存文件数量达到数十、上百万的时候,需要很长时间删除,在这个过程中如果还有用户访问、产生新的缓存文件,将导致硬盘占用达到100%,长期这样的话,可能让服务器硬盘不堪重负、服务器出现负载上升、网站无法访问的情况。

  这个问题一直困扰了我们好长时间,以前都是采取人工每次删除少量文件,逐步试着来进行,这导致要花费好些时间精力。昨天在网上查找了一些资料,然后改动了一下,做了一个批处理:

#!/bin/bash

for name in `find /mnt/gb3/will-delete -name "*" -print`
do
    echo $name
    rm -f $name
    sleep 0.01
done

  根据实际情况修改其中的路径、名称、延时,把这个命名为slowremove.sh,运行就可以了。

订阅 RSS - 删除