海量小文件的管理

在单个目录存放超过上百万的文件时,对大部分的OS都是一个挑战,目录的浏览就是一个非常难以忍受的事情。所以针对海量小文件的应用场景,能够使用nosql数据库时,尽量使用如redis之类的nosql数据库.

在非使用文件系统来存储管理海量小文件的情况下,尽量使用以下原则来进行管理

  • 尽可能使用目录分批存储,避免单目录文件数量过万
  • 文件系统最好使用XFS,XFS的inode数量是ext4的10倍以上

如果不小心遇到了单目录下文件数量过万甚至百万的情况,下面是一些处理建议

##目录复制或者移动 将单目录为百万以上的文件分目录批量存储

首先获取一份目录文件列表,然后根据列表来使用脚本批量处理文件

find /path/ -name "*" > filelist.txt

#!/bin/sh cd _Receive for ((j=1;j<10000;j++)); do _dir=$j mkdir /u02/app/tomcat/files/temp/${_dir} for i in `head -n 10000 /u01/app/tomcat/files/flist.txt` ; do mv $i /u02/app/tomcat/files/temp/${_dir} done sed -i '1,10000d' /u01/app/tomcat/files/flist.txt done

 

## 快速删除文件

rsync -ap --delete-before /blank_dir/ /dest_dir

经测试验证,使用rsync批量删除文件效率要比直接rm快10倍以上

root# time rsync --delete-before -a b/ t
real    2m6.463s
user    0m3.150s
sys    1m2.625s


root# time find t -name "*" -exec rm {} \;
real    27m52.152s
user    4m59.824s
sys    22m50.166s

 

转载于:https://www.cnblogs.com/baill/p/9765425.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值