linux – 删除文件需要太长时间
短版本:rm -rf mydir,mydir(递归)包含250万个文件,在大多数闲置的机器上大约需要12个小时.
更多信息:大多数被删除的文件是指向其他目录中文件的硬链接(被删除的目录实际上是rsnapshot最早的备份; rm命令实际上是由rsnapshot给出的).所以主要是目录条目被删除 – 文件内容本身并不多;它大约是几十GB. 我很不确定btrfs是罪魁祸首.我记得在开始使用btrfs之前备份也很慢,但我不确定缓慢是否在删除. 该机器是Intel Core i5 2.67 GHz,具有4 GB RAM.它有两个SATA磁盘:一个具有操作系统和其他一些东西,备份磁盘是1 TB WDC WD1002FAEX-00Z3A0.主板是华硕P7P55D. 编辑:该机器是一个Debian wheezy与Linux 3.16.3-2~bpo70 1.这是文件系统的安装方式: root@thames:~# mount|grep rsnapshot /dev/sdb1 on /var/backups/rsnapshot type btrfs (rw,relatime,compress=zlib,space_cache) 编辑:使用rsync -a –delete / some / empty / dir mydir大约需要6个小时.比rm -rf有显着改善,但我认为仍然太多了. (Explanation of why 编辑:我附加了另一个磁盘,它在目录中有220万个文件(递归),但是在XFS上.以下是一些比较结果: On the XFS disk On the BTRFS disk Cached reads[1] 10 GB/s 10 GB/s Buffered reads[1] 80 MB/s 115 MB/s Walk tree[2] 11 minutes 43 minutes rm -rf mydir[3] 7 minutes 12 hours [1]使用hdparm -T / dev / sdX和hdparm -t / dev / sdX. 它似乎是btrfs的一个问题. 解决方法
那么这仍然是一个Btrfs问题,众所周知,与其他文件系统相比,删除许多小文件确实需要很长时间.
如果您不喜欢它,您可以等到上游修复它,或者转到另一个更好的文件系统. 你的主要错误是使用btrfs使用古老的内核(3.16,是的,当你发布时它已经很古老了). Btrfs是一个仍在大量开发中的文件系统,所以你应该始终使用最新最好的内核版本来接触这些改进.如果你的发行版不进行后退,你可以自己做,也可以搞砸. Btrfs在内核版本3.19中获得了许多性能改进 – 这是你应该在生产中使用的最低版本,你的内核版本3.16显然很糟糕,没有backports. 另外请记住,根据Chris Mason的说法,他现在确实认为Btrfs稳定了,但还没有准备好生产. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 编译MonoDevelop 4.2.3
- linux – 身份验证后SSH挂起
- linux – 为什么我的CentOS logrotate随机运行?
- rsync – 在两个NFS 1Gb / s文件夹之间移动9千万个文件(270
- Linux cdev vs register_chrdev
- 我可以在Linux上打开一个命名管道,用于在Python中进行非阻塞
- linux – 如果我强制ZFS分离没有有效副本的热备份会怎么样?
- linux – 以不同的用户身份运行shell脚本
- 远程文件系统(nfs ssfhs)如何处理远程到远程拷贝?
- linux – sqlplus:加载共享库时出错:libsqlplus.so:无法