web-dev-qa-db-ja.com

実際にスペースがある場合のOpenWRTの「デバイスにスペースが残っていません」エラー

OpenWRTで実行されているアプリケーションで問題が発生しました。RAMにある/ 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% /

3,640個の0バイトファイルを書き込んだ後、「デバイスに空き容量がありません」というエラーが表示されます。

なぜこれが起こっているのか誰かが説明できますか?現実の場合、これらのファイルを削除するので、通常このような状態にはなりませんが、とにかくこの状態に対処する必要があります。

4
Dave

0バイトのファイルはまだスペースを使用します。各ファイルは少なくとも1つのiノードを使用します。 tmpfsのドキュメントによると、tmpfs(nr_inodes)のデフォルトのiノード数は物理的なRAMページ(通常は4K)の半分です。デバイスには約8MBのメモリがあると思われます。 ?

Rootとして発行することで、必要に応じて、使用可能なiノードの数を増やすことができる場合があります。

mount -o remount -o nr_inodes=7200 /tmp

通常、ファイルシステムで使用されるiノードの数は、「df」で考慮されないほど重要ではありません。

5