Подтвердить что ты не робот

Сколько байтов на каждый дюйм?

Мне нужно создать очень большое количество файлов, которые не очень большие (например, 4kb, 8kb). Это невозможно на моем компьютере, потому что он принимает все inodes до 100%, и я не могу создать больше файлов:

$ df -i /dev/sda5
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda5            54362112 36381206 17980906   67% /scratch

(я начал удалять файлы, поэтому теперь 67%)

байты на узлы имеют 256 в моей файловой системе (ext4)

$ sudo tune2fs -l /dev/sda5 | grep Inode
Inode count:              54362112
Inodes per group:         8192
Inode blocks per group:   512
Inode size:               256

Интересно, можно ли установить это значение очень низко даже ниже 128 (во время переформатирования). Если да, какое значение я должен использовать? спасибо

4b9b3361

Ответ 1

Байт по умолчанию для каждого дескриптора составляет приблизительно 16384. Если у вас заканчивается inode, вы можете попробовать, например:

mkfs.ext4 -i 8192 /dev/mapper/main-var2

Кроме того, вы не можете изменить количество inodes в файловой системе ext3 или ext4 без повторного создания или редактирования шестнадцатеричного кода. Файловые системы Reiser являются динамическими, поэтому у вас никогда не будет проблемы с ними.

Ответ 2

Вы можете узнать приблизительное отношение inode, разделив размер доступного пространства на количество доступных inodes. Например:

$ sudo tune2fs -l /dev/sda1 | awk -F: ' \
    /^Block count:/ { blocks = $2 } \
    /^Inode count:/ { inodes = $2 } \
    /^Block size:/ { block_size = $2 } \
    END { blocks_per_inode = blocks/inodes; \
          print "blocks per inode:\t", blocks_per_inode, \
                "\nbytes per inode:\t", blocks_per_inode * block_size }'

blocks per inode:    3.99759 
bytes per inode:     16374.1

Ответ 3

Я нашел решение моей проблемы на странице man-страницы mke2fs:

-I размер inode

Укажите размер каждого индексного дескриптора в байтах. По умолчанию mke2fs создает 256-байтовые индексы. В ядрах после 2.6.10 и некоторых более ранних ядрах поставщиков можно использовать inodes размером более 128 байт для хранения расширенных атрибутов для повышения производительности. Значение размера inode должно быть больше 2 или 128. Чем больше             inode-size - большее пространство, которое будет потреблять таблица inode, и это уменьшает полезное пространство в файловой системе и может также негативно повлиять на производительность. расширенный             атрибуты, хранящиеся в больших инодах, не отображаются со старыми ядрами, и такие файловые системы не будут монтироваться с ядрами 2.4 вообще. Невозможно изменить             это значение после создания файловой системы.

Максимальное значение, которое вы сможете установить, задается размером вашего блока.

sudo tune2fs -l /dev/sda5 | grep "Block size"
Block size:               4096

Надеюсь, это поможет...