Мне интересно, как я могу увеличить tmpfs
размер сингулярности sif
изображения и как это связано с tmpfs
в хост-системе. Согласно сообщение центра Pawsey:
Singularity has a flag for rendering containers from SIF image files ephemerally writable. --writable-tmpfs will allocate a small amount of RAM for this purpose (configured by the sys admins, by default just a bunch of MB)
В моей хост-системе у меня есть следующее tmpfs
:
$ df -h | grep tmpfs
tmpfs 13G 2,9M 13G 1% /run
tmpfs 63G 84M 63G 1% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 63G 0 63G 0% /sys/fs/cgroup
В то время как внутри контейнера у меня есть:
overlay 16M 12K 16M 1% /
...
tmpfs 63G 84M 63G 1% /dev/shm
tmpfs 16M 12K 16M 1% /.singularity.d/libs
tmpfs 13G 2.9M 13G 1% /run/nvidia-persistenced/socket
Я могу записывать в свой контейнер только небольшие файлы (несколько КБ, иначе выдается «ошибка отсутствия пробела»). Какой tmpfs использует сингулярность и почему? Как я могу увеличить его?
Размер раздела tmpfs задается администратором с помощью записи конфигурации sessiondir max size
. По умолчанию он равен 16 МБ, но вы можете проверить его через sudo singularity config global --get "sessiondir max size"
или напрямую проверить файл конфигурации, если у вас недостаточно прав: grep sessiondir /usr/local/etc/singularity/singularity.conf
.
Вы можете изменить значение конфигурации (или попросить сделать это администраторов), чтобы увеличить его до нужного размера. Если это невозможно, вам нужно убедиться, что файловая система хоста смонтирована в местах, где записываются данные. В любом случае это, вероятно, хорошая идея, если вы будете писать много данных. Docker также делает это за кулисами при использовании томов.