我编写了一个有问题的程序,意外地在/ tmp下创建了大约3000万个文件。(该错误是在几周前引入的,它每秒创建两个子目录。)我可以将/ tmp重命名为/ tmp2,现在需要删除文件。系统是FreeBSD 10,根文件系统是zfs。
同时,镜像中的一个驱动器出现故障,我已将其更换。该驱动器有两个120GB SSD磁盘。
这里的问题是:更换硬盘驱动器并重新装入整个阵列需要不到一个小时的时间。删除文件/ tmp2是另一回事。我编写了另一个程序来删除文件,并且它每秒只能删除30-70个子目录。删除所有文件需要2-4天。
重新同步整个阵列需要一个小时,而从磁盘中删除需要4天,这怎么可能?为什么我的表现这么差?每秒70次删除似乎是非常非常差的性能。
我可以手动删除/ tmp2的inode,但这不会释放空间,对吗?
zfs或硬盘驱动器可能有问题吗?
df -h
和zpool list
和zfs list
。
rm -rf /tmp2
不会做这项工作吗?
/tmp
应该是一个tmpfs
文件系统,并存储在内存中。