LINUX.ORG.RU
ФорумTalks

Файловые системы с быстрым удалением


1

1

Есть такие ФС, у которых удаление папки по времени не зависит от количества файлов внутри? Тоесть алгоритм удаления амортизирован будущей работой ФС или просто структуры данных это поддерживают.

★★★★★

Ответ на: комментарий от sdio

звездей куча, а телепатии ноль...
ты хоть помнишь, что по дефолту рейзер пакует хвосты?
потому noatime,nodiratime,notail
но последний ключик желательно использовать на фс с нуля, ибо

megabaks ★★★★
()
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от megabaks

судя по занимаемому месту (др. тест) миллион шестикилобайтных файлов занял 8Гбайт, хвосты не были упакованы

noatime,nodiratime — при удалении влияет?

sdio ★★★★★
()
Ответ на: комментарий от vertexua

> Имхо, это не возможно. Разве что костылём: помещать инод удаляемой директории в специальный список удаленных, и затем в фоне вычищать.
Да-да, а что не так? Это решение в лоб. Но может быть все намного хитрее. Какой-то reclaim при потребности

Это называется «Корзина». Делай удалять в крзину, а очищать ее может какой-то фоновый демон. Profit.

Kroz ★★★★★
()
Ответ на: комментарий от Eddy_Em

А самому, значит, в лом собрать? Или, раз уж такой крутой, подчиненному это поручить?

представь, что тебе нужно купить и собрать Over9000 компьютеров? А про подчинённых это ты тёток в бухгалтерии имеешь ввиду? Ну-ну...

drBatty ★★
()
Ответ на: комментарий от Eddy_Em

Куда ей развиваться? Отлично работает. И все.

NTFS тоже отлично работает в WinNT4 и на HDD в 500Мб. Вот только таким компьютером никто не хочет пользоваться... Странно... Я вот юзал году так в 2000 - нормально.

drBatty ★★
()
Ответ на: комментарий от Kroz

Это называется «Корзина». Делай удалять в крзину, а очищать ее может какой-то фоновый демон. Profit.

этот твой демон систему в такой фриз положит, что 12309 для тебя будет сказкой.

drBatty ★★
()
Ответ на: комментарий от drBatty

В этом случае компьютеры не нужны, нужны моноблоки

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от drBatty

ntfs в линуксе — говно, а в мастдайке пойдет.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от sdio

прикола ради проверил на ffs (только 10000 файлов, ибо система — тормозной Atom):

$ sync; mkdir xxx; cd xxx; time ( jot 10000 | xargs touch ); sync; cd ..; time rm -rf xxx
    0m0.49s real     0m0.05s user     0m0.45s system
    0m0.27s real     0m0.01s user     0m0.25s system

забавная картина получается: в отличае от linux'ов, которые судя по тестам в треде выше, стирают в 2 раза медленне, чем создают, на ffs всё с точностью до наоборот: стирается в 2 раза быстрее. ☺ проверял на разном кол-ве файлов — зависимость линейная.

beastie ★★★★★
()
Ответ на: комментарий от sdio

нету тут /proc, нету. с темя синками даже быстрее выходит ☺

$ sync; sync; sync; mkdir xxx; cd xxx; time ( jot 10000 | xargs touch ); sync; sync; sync; cd ..; time rm -rf xxx       
    0m0.49s real     0m0.03s user     0m0.45s system
    0m0.13s real     0m0.00s user     0m0.12s system
beastie ★★★★★
()
Ответ на: комментарий от sdio

Этот примитивный синтетический тест, который был ориентирован на ext4, не показатель.

reiserfs быстрее всех оказался

  fs           создание     удаление
                    sec (меньше лучше) 
reiserf          1450             98
ext4             1667            147
xfs              1788            154

-------------------------------------------------------------
reiserfs
# dd if=/dev/urandom of=file.6k bs=1k count=6 
# mkdir test5
# time (seq -w 1 1000000 | xargs -L1 -I{} cp file.6k test5/{}) 
real	24m10.822s 
# echo 3 > /proc/sys/vm/drop_caches
# time rm -rf test5   
real	1m38.126s   # 4 ядра на 20%

ext4
# dd if=/dev/urandom of=file.6k bs=1k count=6 
# mkdir test5
# time (seq -w 1 1000000 | xargs -L1 -I{} cp file.6k test5/{}) 
real	27m47.127s 
# echo 3 > /proc/sys/vm/drop_caches
# time rm -rf test5 
real	2m27.079s   # 4 ядра 5-10%

xfs
# dd if=/dev/urandom of=file.6k bs=1k count=6 
# mkdir test5
# time (seq -w 1 1000000 | xargs -L1 -I{} cp file.6k test5/{}) 
real	29m48.990s 
# echo 3 > /proc/sys/vm/drop_caches
# time rm -rf test5 
real	2m34.357s    # 4 ядра на 20%


sdio ★★★★★
()
Ответ на: комментарий от drBatty

этот твой демон систему в такой фриз положит, что 12309 для тебя будет сказкой.

Мой демон не положит, ибо есть 100500 способов сделать его работу незаметной. А вот твой, судя по вбросу, наверное положит :P

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)
Ответ на: комментарий от beastie

в отличае от linux'ов, которые судя по тестам в треде выше, стирают в 2 раза медленне, чем создают

На твоем кол-ве файлов создание и удаление занимает одинаковое время


$ sync; sync; sync; mkdir xxx; cd xxx; time ( seq 10000 | xargs touch ); sync; sync; sync; cd ..; time rm -rf xxx

real	0m0.260s

real	0m0.226s

$ sync; sync; sync; mkdir xxx; cd xxx; time ( seq 50000 | xargs touch ); sync; sync; sync; cd ..; time rm -rf xxx

real	0m1.399s

real	0m1.169s

$ sync; sync; sync; mkdir xxx; cd xxx; time ( seq 100000 | xargs touch ); sync; sync; sync; cd ..; time rm -rf xxx

real	0m2.858s

real	0m2.470s

$ sync; sync; sync; mkdir xxx; cd xxx; time ( seq 300000 | xargs touch ); sync; sync; sync; cd ..; time rm -rf xxx

real	0m10.056s

real	0m8.369s

$ sync; sync; sync; mkdir xxx; cd xxx; time ( seq 500000 | xargs touch ); sync; sync; sync; cd ..; time rm -rf xxx

real	0m20.453s

real	0m16.104s
sdio ★★★★★
()
Ответ на: комментарий от sdio

мне не важно, что ты там посчитал
просто сделай так, чтобы фс не выполняла мильён ненужных телодвижений
ну ты понел...

megabaks ★★★★
()
Ответ на: комментарий от sdio

есть такой контингент, который считает себя умнее остальных, но при этом доков не читает, думать не хочет, копипастить не умеет
потому и получает МПХ по лбу, вместо профитов

megabaks ★★★★
()
Последнее исправление: megabaks (всего исправлений: 2)
Ответ на: комментарий от Kroz

Мой демон не положит, ибо есть 100500 способов сделать его работу незаметной.

у тебя там rm будет? А вот rm загружает ВЕСЬ каталог в память, и если он большой, памяти нужно МНОГО. Впрочем, удалять 10 файлов при 10Гб памяти конечно можно...

А вот твой, судя по вбросу, наверное положит :P

в моём rm будет. или unlink(2), что без разницы. У тебя есть другие предложения?

drBatty ★★
()
Ответ на: комментарий от drBatty

А вот rm загружает ВЕСЬ каталог в память

Ужасно! В память попадет пару лишних килобайт! Или ты хочешь сказать что он содержимое файлов загружает в память?

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Ужасно! В память попадет пару лишних килобайт! Или ты хочешь сказать что он содержимое файлов загружает в память?

ну не пару, а как минимум 4К. А вот если файлов 1М? Сколько займёт такой каталог? (IRL десятки, а иногда и сотни мегабайт)

drBatty ★★
()
Ответ на: комментарий от drBatty

ну не пару, а как минимум 4К. А вот если файлов 1М? Сколько займёт такой каталог? (IRL десятки, а иногда и сотни мегабайт)

1. Что это за цифры? Откуда 4k? И при чем здесь память? Это не есть узкое место при удалении.
2. Про «иногда» которое случается с 0.01% вероятностью я говорить вообще не стану. Рассматриваем только более-менее вероятные случаи - реальные. Это 1-1000 файлов размеров от 1k до 5G.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

1. 4к == размер блока в наиболее распространённой ФС EXT*. Память тут при том, что для выделения мегабайта тебе нужно перекидать миллион байтов с диска в память, а потом обратно. Почему речь о миллионах? Потому-что в каталоге хранятся имена файлов, и размер каталога на порядок больше числа файлов. А IRL ещё больше, ибо в виде простого списка имена хранятся только в FAT. В других ФС имена храняться в сложных деревьях, которые оптимизированы не по объёму, а по скорости поиска. Объём и скорость удаления никого не волнует.

2. случай, когда у тебя 1..1000 файлов НЕ играет роли - тут даже FAT удаляет/ищет настолько быстро, что и не померить. Важен только случай, когда файлов значительно больше 10 000 (в одном каталоге). Размер самих файлов практически никакого значения НЕ имеет. (IRL кстати иногда имеет, если файл сильно фрагментирован, и это флешка на USB1. К счастью операция освобождения места IRL откладывается, потому ждать не надо, кроме случая, когда накопитель надо извлечь)

drBatty ★★
()
Ответ на: комментарий от drBatty

Память тут при том, что для выделения мегабайта тебе нужно перекидать миллион байтов с диска в память, а потом обратно.

Стоп, стоп, стоп. Кажется я нашел наши разночтения. Я предполагаю что корзина находится на том же разделе, где и удаляемый файл. Тогда удаление в корзину - это простое перемещение в каталог корзины, что происходит практически моментально при практически любых объемах. Копировать? Конечно нет! Так и когда/зачем это нужно?

Kroz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.