Estou confuso se meu /tmp usando tmpfs está respeitando o size
parâmetro que dei a ele em /etc/fstab
:
Minhas entradas do fstab agora são:
root_pool/var/tmp /tmp /var/tmp zfs rw,nodev,nosuid 0 0
tmpfs /tmp tmpfs rw,nodev,nosuid,noexec,nr_inodes=5k,size=2G,mode=1777 0 0
tmpfs /dev/shm tmpfs defaults,nodev,nosuid,nr_inodes=5k,mode=700,size=4G 0 0
Mas de acordo com du, ele está usando metade da minha memória (que eu entendo ser o padrão) em vez do tamanho que eu pretendia alocar para ele.
~ df /tmp
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 65921428 0 65921428 0% /tmp
Então, o size
parâmetro simplesmente não está tendo nenhum efeito? Estou trabalhando com o Ubuntu 20.04
Editar eu posso montá-lo manualmente com
sudo mount -oremount,size=4G /tmp
Quando faço isso /tmp
são os 20,04 GB esperados.
Editar: status do systemd:
● tmp.mount - Temporary Directory (/tmp)
Loaded: loaded (/etc/systemd/system/tmp.mount; enabled; vendor preset: enabled)
Active: active (mounted) since Wed 2020-06-17 13:30:35 EDT; 8min ago
Where: /tmp
What: tmpfs
Docs: https://systemd.io/TEMPORARY_DIRECTORIES
man:file-hierarchy(7)
https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
Tasks: 0 (limit: 154317)
Memory: 76.0K
CGroup: /system.slice/tmp.mount
Jun 17 13:30:35 virtland systemd[1]: Mounting Temporary Directory (/tmp)...
Jun 17 13:30:35 virtland systemd[1]: Mounted Temporary Directory (/tmp).
ejournalctl -u tmp.mount
-- Reboot --
Jun 17 13:27:50 virtland systemd[1]: tmp.mount: Directory /tmp to mount over is not empty, mounting an>
Jun 17 13:27:50 virtland systemd[1]: Mounting Temporary Directory (/tmp)...
Jun 17 13:27:50 virtland systemd[1]: Mounted Temporary Directory (/tmp).
Jun 17 13:29:43 virtland systemd[1]: Unmounting Temporary Directory (/tmp)...
Jun 17 13:29:43 virtland systemd[1]: tmp.mount: Succeeded.
Jun 17 13:29:43 virtland systemd[1]: Unmounted Temporary Directory (/tmp).
-- Reboot --
Jun 17 13:30:35 virtland systemd[1]: tmp.mount: Directory /tmp to mount over is not empty, mounting an>
Jun 17 13:30:35 virtland systemd[1]: Mounting Temporary Directory (/tmp)...
Jun 17 13:30:35 virtland systemd[1]: Mounted Temporary Directory (/tmp).
Edit2: Definir o tamanho de tmpfs para /dev/shm
está funcionando conforme o esperado:
# in fstab
tmpfs /dev/shm tmpfs defaults,nodev,nosuid,nr_inodes=5k,mode=700,size=4G 0 0
tmpfs 13184288 2328 13181960 1% /run
tmpfs 4194304 41056 4153248 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 65921432 0 65921432 0% /sys/fs/cgroup
tmpfs 65921432 0 65921432 0% /tmp
tmpfs 13184284 8 13184276 1% /run/user/1000
Além disso, parece que a opção noexec, embora recomendada por muitos guias de segurança, é problemática porque alguns programas (incluindo o apt) precisam ser executados a partir de /tmp. Eu entendo que isso pode ser contornado, mas não quero ter que descobrir todos os programas que precisam ser uma exceção.
No Ubuntu 20.04, a unidade
tmp.mount
vive originalmente em/usr/share/systemd/tmp.mount
.As modificações feitas pelo administrador do sistema (usuário) entram
/etc/systemd/system/
e provavelmente é por isso que elas têm maior prioridade.Não sei por que sua unidade reside em
/etc/systemd/system/
.Meu palpite é que sua
tmp.mount
unidade/etc/systemd/system/
está interferindo na entrada em fstab.Para confirmar esta alteração a seguinte linha em
/etc/systemd/system/tmp.mount
em
Para obter o comportamento desejado, desative e remova a unidade definida em
/etc/systemd/system/tmp.mount
.