Failed: No space left on device на сервере с Next.js
-
Однажды может случиться так, что на вашем сервере какая-либо команда может вернуть ошибку
No space left on device
, вы ожидаете, что закончилось место, проверяете его, но все порядке, так в чем же причина?Если ваша система наполнена невероятным количеством файлов, то можно достичь предела inodes до того, как исчерпать возможности хранения накопителя. (лучше иметь большие файлы, чем слишком много маленьких)
Для проверси предела Inodex можно воспользоваться командой:
sudo df -i
и получить подобное:
Filesystem Inodes IUsed IFree IUse% Mounted on udev 495152 353 494799 1% /dev tmpfs 501143 519 500624 1% /run /dev/vda1 3276800 3276800 0 100% / tmpfs 501143 3 501140 1% /dev/shm tmpfs 501143 2 501141 1% /run/lock tmpfs 100228 21 100207 1% /run/user/0 tmpfs 100228 20 100208 1% /run/user/1000
это и значит, что у нас что-то создало очень много мелких файлов.
Next.js и его кеш могут генерировать очень много файлов
До 15 версии Next.js все запросы
fetch()
кешируются по умолчанию, и если ничего не настраивать, то их может скопиться очень много в виде файлов в папке.next/cache/fetch-cache/
В итоге вам достаточно просто почистить папку с кешем.rm -rf .next/cache/fetch-cache