Aqui está o que eu sei até agora. Vou colocar isso aqui na esperança de que seja útil, mas os refinamentos são bem-vindos.
A soma do espaço de troca e da RAM deve estar disponível para uso pelos arquivos / tmp. Você pode ler mais sobre isso nas man pages para tmpfs, mount_tmpfs e swap.
Veja alguns documentos relevantes:
Administração do Oracle Solaris 11.1: dispositivos e sistemas de arquivos link
No final da página man tmpfs, encontrei isto:
df(1M) output is of limited accuracy since a tmpfs file sys-
tem size is not static and the space available to tmpfs is
dependent on the swap space demands of the entire system.
O documento de suporte Oracle 1007407.1 sugere que a implementação reporta falta de espaço se essa condição se tornar verdadeira:
((RAM + swap - process-space) * .9) - space-from-files-in-tmp = 0
Isso parece indicar que algum tipo de fator fudge está envolvido.
Minha interpretação dessa fórmula é que os processos em execução podem ficar muito mais próximos do limite verdadeiro da memória + troca. O espaço alocado em / tmp começará a falhar quando o espaço livre em (RAM + swap) ficar próximo de 10%. Se você tem uma grande RAM (como 128G) e uma pequena troca padrão (como 4G), então isso significa que / tmp poderia reportar que está cheio antes que qualquer página seja alocada a partir do espaço de troca. Não há nada de errado com isso, é apenas uma reviravolta curiosa nos algoritmos e suposições tradicionais de memória virtual.