В моем Linux vServer inode ограничены (например, 250.000). Я обнаружил, что для установки Yii2 требуется довольно много inode. Количество инодов примерно равно количеству файлов и каталогов.
Количество инодов, используемых в текущем каталоге и его подкаталогах, можно определить с помощью
find . -xdev -printf '%h\n' | sort | uniq -c | awk '{total = total + $1}END{print total}'
Среднее число моих проектов Yii2 составляет около 30 тыс. Инодов. В файлах не так много ./web/assets
, в ./runtime
или же ./web/images
папки. Большинство инодов используются в ./vendor
каталог.
Таким образом, количество моих проектов Yii2 ограничено 8 проектами.
Что я могу сделать, чтобы уменьшить использование inode в проектах Yii2?
Предполагая, что у вас есть root в вашем Linux vServer, вы можете встроить новую файловую систему в один файл и смонтировать его. Такой файл будет занимать только один инод в родительской файловой системе, в то время как количество инодов в изображении зависит от вас.
# dd if=/dev/zero of=myfs bs=1MB count=512
512+0 records in
512+0 records out
512000000 bytes (512 MB) copied, 4.10134 s, 125 MB/s
# losetup --find --show `pwd`/myfs
/dev/loop0
# mkfs -t ext4 -i 1024 /dev/loop0
mke2fs 1.42.12 (29-Aug-2014)
Discarding device blocks: done
Creating filesystem with 500000 1k blocks and 500464 inodes
Filesystem UUID: fef5ab29-8991-4f99-8a27-80b4d11b3133
Superblock backups stored on blocks:
8177, 24529, 40881, 57233, 73585, 204401, 220753, 400625
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
# mount /dev/loop0 /mnt
# df -i | sed -n '1p;/mnt/p'
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/loop0 500464 11 500453 1% /mnt
Здесь я выбрал ext4 и установил число байтов на индекс, -i
, до его минимального значения, дающего наибольшее число инодов, 500464, для 512 МБ на ext4.
Таким образом, вы можете создать несколько файловых систем, по одной для каждого проекта, или создать гораздо большую систему со множеством инодов.
Чтобы смонтировать образ при следующей перезагрузке, добавьте строку в /etc/fstab
,
Других решений пока нет …