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バイトファイルを書き込んだ後、「デバイスに空き容量がありません」というエラーが表示されます。
なぜこれが起こっているのか誰かが説明できますか?現実の場合、これらのファイルを削除するので、通常このような状態にはなりませんが、とにかくこの状態に対処する必要があります。
0バイトのファイルはまだスペースを使用します。各ファイルは少なくとも1つのiノードを使用します。 tmpfsのドキュメントによると、tmpfs(nr_inodes)のデフォルトのiノード数は物理的なRAMページ(通常は4K)の半分です。デバイスには約8MBのメモリがあると思われます。 ?
Rootとして発行することで、必要に応じて、使用可能なiノードの数を増やすことができる場合があります。
mount -o remount -o nr_inodes=7200 /tmp
通常、ファイルシステムで使用されるiノードの数は、「df」で考慮されないほど重要ではありません。