Tux Zine banner
Article Thumbnail

Como Ajustar a Memória no Linux para Jogos e Aplicações Modernas

📅 Qua, 15 mai 2024, 11:16 👤 Nerun


Este tutorial é baseado em uma fração de um material disponível no canal A1RM4X: How to optimize Linux Mint for gaming - Ultimate Full Tutorial - Linux Switching series - Part 5.

O objetivo aqui é ajustar parâmetros de gerenciamento de memória do kernel Linux para melhorar o desempenho geral do sistema — com foco em jogos.

Consultando os valores atuais

Primeiro, vamos verificar os valores padrão do sistema:

$ cat /proc/sys/vm/max_map_count
65530

$ cat /proc/sys/vm/swappiness
60

$ cat /proc/sys/vm/vfs_cache_pressure
100

Agora precisamos entender o que cada um desses parâmetros representa.

Swappiness

O swappiness define o quão agressivamente o kernel passa a usar swap em relação à memória RAM. Swap é uma área em disco usada para descarregar páginas de memória quando o kernel entende que isso é vantajoso para manter o sistema responsivo.

O valor varia de 0 a 100:

⚠️ Importante:

Swappiness não é um limite rígido nem funciona como "quando X% da RAM acabar". Ele é um peso heurístico usado pelo kernel em decisões de alocação.

Na prática:

Recomendações gerais:

max_map_count

O vm.max_map_count define quantas áreas de mapeamento de memória um único processo pode criar. Essas áreas são usadas por:

A maioria dos programas usa poucas centenas de mapas, mas:

podem exigir dezenas ou centenas de milhares.

Historicamente, o valor padrão é 65530. Em abril de 2024, o Arch Linux elevou esse valor para 1048576, mudança que depois foi seguida por Debian e outras distribuições, justamente para evitar falhas e gargalos em aplicações modernas intensivas em memória.

Esse parâmetro não consome memória por si só — ele apenas remove um limite artificial.

vfs_cache_pressure

O vm.vfs_cache_pressure controla a agressividade com que o kernel descarta cache de metadados do sistema de arquivos, especificamente:

Isso não é cache do conteúdo dos arquivos, mas da estrutura do sistema de arquivos. Sem esse cache, o kernel precisa consultar o disco constantemente apenas para resolver caminhos.

Valores comuns:

Em desktops modernos com bastante RAM, 50 é um valor seguro e eficiente.

Configurando os valores permanentemente

Vamos criar um arquivo de configuração para aplicar esses ajustes de forma persistente:

$ sudoedit /etc/sysctl.d/80-gamecompatibility.conf

O arquivo estará vazio. Insira:

vm.max_map_count = 1048576
vm.swappiness = 10
vm.vfs_cache_pressure = 50

No meu caso, tenho 32 GB de RAM, então defini o swappiness em 10.

Para aplicar sem reiniciar:

$ sudo sysctl --system

Verificando novamente:

$ cat /proc/sys/vm/max_map_count
1048576

$ cat /proc/sys/vm/swappiness
10

$ cat /proc/sys/vm/vfs_cache_pressure
50
🔝