4

Я столкнулся с проблемой с моим приложением, работающим на OpenWRT, где я записываю файлы в /tmp, который находится в оперативной памяти. Хотя df сообщает, что используется около 0%:

root@OpenWrt:/tmp# df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                     576       212       364  37% /
/dev/root                 2560      2560         0 100% /rom
tmpfs                    14680        48     14632   0% /tmp
tmpfs                      512         0       512   0% /dev
/dev/mtdblock3             576       212       364  37% /overlay
overlayfs:/overlay         576       212       364  37% /

после того, как я написал 3640 0-байтовых файлов, я получаю сообщение об ошибке "На устройстве не осталось места".

Кто-нибудь может объяснить, почему это происходит? В случае с реальным миром у меня обычно не было бы такого состояния, как если бы я удалял эти файлы, но я все равно должен позаботиться об этом условии.

1 ответ1

5

0-байтовые файлы все еще используют пробел; каждый файл использует хотя бы один индекс. Из документации tmpfs число inode для tmpfs (nr_inodes) по умолчанию равно половине количества страниц физической памяти (обычно 4K). Я подозреваю, что у вас есть около 8 МБ памяти на вашем устройстве?

Может быть возможно увеличить количество доступных inode, если это то, что вы хотите, выполнив от имени root:

mount -o remount -o nr_inodes=7200 /tmp

Как правило, число используемых inode в файловой системе достаточно незначительно, чтобы не учитывать «df».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .