> Как планировать количество inodes при создании файловой системы (Node.js)

Уровень: senior · Роль: backend · Категория: Технические вопросы

Компании: Wildberries

Стек: Node.js

> Пример ответа

При планировании количества inodes нужно учитывать, что inode - это структура, хранящая метаданные файла (размер, права доступа, временные метки, указатели на блоки данных). Каждый файл или директория занимает ровно один inode, независимо от размера. Количество inodes задается при создании ФС и не может быть изменено без пересоздания.

Основные шаги:

  1. Оценить средний размер файла в вашем приложении. Например, если храните много мелких JSON-документов (по 1-10 КБ), inodes закончатся быстрее, чем дисковое пространство.
  2. Рассчитать необходимое количество: ожидаемое количество файлов + запас (обычно 20-30%). Для Node.js приложений, работающих с большим числом логов или кэшей, запас может быть больше.
  3. Использовать утилиты:
    • mkfs.ext4 -N <количество inodes> /dev/sda1 - явное задание.
    • mkfs.ext4 -T <тип> /dev/sda1 - выбор предустановленного профиля (например, news для большого числа мелких файлов).
  4. Проверить текущие лимиты: df -i покажет использованные и доступные inodes.

Для типичного бэкенда на Node.js (например, с базой данных, кэшем и логами) рекомендуется использовать значение по умолчанию (1 inode на каждые 16 КБ пространства) или увеличить в 2-3 раза, если ожидается много мелких файлов. В противном случае, при исчерпании inodes, система не сможет создавать новые файлы, даже если свободное место есть.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью