Я написав помилкову програму, яка випадково створила близько 30М файлів під / tmp. (Помилка була введена кілька тижнів тому, і вона створювала пару підкаталогів в секунду.) Я міг перейменувати / tmp в / tmp2, і тепер мені потрібно видалити файли. Система FreeBSD 10, коренева файлова система - zfs.
Тим часом один із приводів у дзеркалі пішов не так, і я його замінив. У накопичувача є два 120 ГБ SSD-дисків.
Ось питання: заміна жорсткого диска та повторне ремонту всього масиву зайняли менше години. Видалення файлів / tmp2 - інша історія. Я написав іншу програму для видалення файлів, і вона може видалити лише 30-70 підкаталогів за секунду. Щоб видалити всі файли, знадобиться 2-4 дні.
Як можливо, що повторне переміщення всього масиву займає годину, але видалення з диска займає 4 дні? Чому в мене такі погані показники? 70 видалень в секунду здається дуже поганою роботою.
Я міг би видалити inode for / tmp2 вручну, але це не звільнить простір, правда?
Чи може це бути проблема з zfs, жорсткими дисками чи що?
df -h
та zpool list
та zfs list
.
rm -rf /tmp2
не зробить роботу?
/tmp
повинна бути tmpfs
файловою системою і зберігається в пам'яті.