Yii2: сокращение использования inode на vServer

В моем 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?

2

Решение

Предполагая, что у вас есть 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,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]