Версия Java отличается графическим интерфейсом и командной строкой

Я полагаю, что у вас проблема не в том, что раздел заполняется индексными дескрипторами как таковой, а в том, что их количество в файловой системе исчерпывается. ext4 статически резервирует inodes при создании файловой системы, но вы можете установить число с помощью параметров на mkfs.ext4 :

-i bytes-per-inode
{{1} } Укажите соотношение байтов / индексных узлов. mke2fs создает индексный дескриптор для каждого байта на каждый индексный дескриптор пространства на диске. Чем больше соотношение байтов на индексный дескриптор , тем меньше индексных дескрипторов будет создано.

-N number-of-inodes
Переопределяет расчет по умолчанию количества inodes, который должен быть зарезервирован для файловой системы (который основан на числе {{1} } блоков и соотношение байтов на индекс).Это позволяет пользователю напрямую указать количество требуемых индексных дескрипторов.

В руководстве прямо указано, что соотношение байтов на индексный дескриптор не может быть изменено после создания FS, но общее число будет масштабироваться в соответствии с соотношением, если размер FS будет изменен.

Вы также можете установить размер каждого inode. По умолчанию для «большинства» файловых систем используется 256 байт, но его можно уменьшить до 128 (значение по умолчанию для «малых» файловых систем). Дополнительное пространство используется для хранения расширенных атрибутов (например, меток SELinux), поэтому, если они вам не нужны, можно безопасно уменьшить размер до минимума.

-I inode-size
Укажите размер каждого inode в байтах. Значение размера индексного дескриптора должно быть в степени 2 больше или равным 128.

df -i должно показывать количество выделенных и используемых индексов. С параметрами по умолчанию один раздел 30 ГБ, который я смотрел, имел один индексный дескриптор на каждые 16 КБ, но если ваши файлы очень маленькие, вы можете установить, скажем, -i 4096 , чтобы иметь один индексный дескриптор для каждого блока данных. в системе.

Если размер ваших файлов меньше 4096, вы можете также уменьшить размер блока файловой системы, поскольку для всех обычных файлов в любом случае потребуется один полный блок данных. (То есть на ext4. Я не знаю, упаковывают ли небольшие файлы другие текущие файловые системы.)

-b размер блока
Указывает размер блоков в байтах. Допустимые значения размера блока: 1024, 2048 и 4096 байтов на блок. Если опущено, размер блока эвристически определяется размером файловой системы и ожидаемым использованием файловой системы (см. Параметр -T).

мкфс.ext4 также имеет параметр -T , который можно использовать как сокращение для некоторых или всех из них. Настройки находятся в /etc/mke2fs.conf , что в моем Debian, например, mkfs.ext4 -T small эквивалент

mkfs.ext4 -b 1024 -I 128 -i 4096

Что может быть неплохим набором опций для большого количества небольших файлов (и без xattr).

Если ваши файлы даже меньше одного кБ, файловая система может быть не лучшим способом сохранения данных, но, возможно, следует рассмотреть что-то вроде базы данных или системы, специфичной для приложения.

0
18.07.2015, 16:17
0 ответов

Теги

Похожие вопросы