Сколько байтов на inodes?
-
26-09-2019 - |
Вопрос
Мне нужно создать очень большое количество файлов, которые не очень велики (например, 4 КБ, 8 КБ). Это невозможно на моем компьютере, потому что она берет все 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 (во время реформирования). Если да, какая ценность я должен использовать? Спасибо
Решение
Байты по умолчанию на один inode обычно 16384, что по умолчанию inode_ratio
в /etc/mke2fs.conf
(Это читается до создания файловой системы). Если у вас заканчиваются inodes, вы можете попробовать, например:
mkfs.ext4 -i 8192 /dev/mapper/main-var2
Другой вариант, который влияет на это -T
, как правило -T news
Что дополнительно уменьшает его до 4096.
Кроме того, вы не можете изменить количество inodes в файловой системе Ext3 или Ext4 без повторного создания или Hex-редактирования его. Файловые файлы Reiser динамичны, поэтому у вас никогда не будет проблемой с ними.
Другие советы
Вы можете узнать приблизительный соотношение индекса, разделив размер доступного пространства по количеству доступных 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
Я нашел решение моей проблемы на странице Meke2fs Man:
-Я inode-размер
Укажите размер каждого индекса в байтах. MKE2FS создает 256-байтовые inodes по умолчанию. В ядрах после 2.6.10 и некоторые более ранние ядра поставщика можно использовать inodes больше 128 байтов для хранения расширенных атрибутов для улучшенной производительности. Значение inode-размера должно быть мощностью 2 больше или равно 128. Отказ Чем больше размер индекса, тем больше пространства таблица Inode будет потреблять, и это снижает полезное пространство в файловой системе, а также может также негативно воздействовать на производительность. Расширенные атрибуты, хранящиеся на больших inodes, не видны с более старыми ядрами, и такие файловые системы вообще не будут монтироваться с 2,4 ядрами. Невозможно изменить это значение после создаваемой файловой системы.
Maximun вы сможете установить, дается вашим блоком.
sudo tune2fs -l /dev/sda5 | grep "Block size"
Block size: 4096
Надеюсь, это может помочь ....