Nesse caso, existe um enorme problema no Linux se você se aproximar da condição de falta de memória - você notará que todo o seu sistema fica totalmente sem resposta porque inicia muitas trocas. Até o cursor do mouse pode ficar tão "lento" que você não pode iniciar um terminal e interromper manualmente um processo comedor de memória incorreto. Isso ocorre devido ao grande número de operações em disco.
Para evitar essa situação, eu geralmente desabilito completamente a troca, para que o kernel do Linux seja sempre responsivo e, na pior das hipóteses, o assassino de falta de memória (OOM) acabará com algum processo. A lógica de qual processo é morto pelo OOM depende da versão do kernel.
Portanto, a resposta é não - não ative a alocação dinâmica de swap. Você enfrentará trava de máquina.
É fácil testá-lo com um programa que apenas aloca constantemente alguma memória em um loop. Salve este programa em um arquivo de texto memeater.c
:
#include <stdlib.h>
int main() {
for (;;) {char* mem=malloc(4096); mem[0]=1;};
}
Em seguida, compile-o:
$ gcc memeater.c -o memeater
e corra:
$ ./memeater
Experimente com swap, sem swap e com sua alocação dinâmica de swap.
Além disso, lembre-se de que, na maioria dos casos, essa condição de OOM ocorre devido a um erro no software (vazamento de memória) ou você fez algo errado como 'carregar este arquivo de 10 GB no editor' ou 'executar muitos redimensionamentos de arquivos gráficos em paralelo' e a conclusão: você precisa trocar ou não?