Área de troca ou SWAP, é um tipo especial de sistema de arquivos. A área de troca serve para armazenar transitoriamente os dados contidos em páginas da memória RAM, quando essa começa a ficar cheia. O tamanho padrão de uma página de memória RAM é 4 Kb (4096 bytes).
A área de troca evita que o sistema entre em um estado chamado de Starvation, onde não é possível executar qualquer programa e o sistema congela por falta de memória RAM. Os sistemas com kernel maior que 2.5.22, somente aceitam SWAP padrão V1. O padrão V0 se tornou obsoleto a partir desta versão.
É possível criar até 32 partições de SWAP. Elas são escalonadas por um grau de prioridade de uso definido pelo administrador. Em sistemas particionados com a antiga tabela do tipo MS-DOS, a partição de SWAP deve ser do tipo 0x82 (Linux-Swap).
O particionamento MS-DOS está obsoleto e deve ser evitado. Prefira o particionamento GPT, por ser mais seguro e moderno. Em sistemas GPT, o código de uma partição de troca é 8200. Partições de SWAP podem ser ativadas por seu identificador UUID, pelo rótulo (Label) ou por seu nome de dispositivo.
Programas somente podem ser executados na memória RAM e, para isso, é preciso ter um número mínimo de páginas de memória disponíveis. A função do sistema de arquivos SWAP é "abrir" espaço na RAM, para que um programa seja executado. Isso ocorre em um sistema Linux com pouca memória RAM livre.
Antigamente, quando a memória RAM era um recurso caro e escasso, a utilização de área de troca em disco (SWAP) era muito importante. Hoje, com a maior disponibilidade de RAM e preços por gigabyte mais acessíveis, o recurso SWAP não é muito utilizado.
Muitos usuários fazem instalações sem uma área de troca. Isso é errado, pois a área de troca é uma garantia de funcionamento do sistema, em casos extremos de uso da RAM. A falta de RAM pode acontecer durante o uso intenso ou ser causada por um erro (bug) que leve ao esgotamento da RAM. Um servidor de produção DEVE ter uma área de troca, pois o subsistema de gerenciamento da memória presente no kernel espera por isso.
Atualmente (2014), o tamanho médio para uma área de troca é de 2 GB para sistemas 32 bits e 4 GB para sistemas 64 bits. O tamanho tende a ser igual ao total da RAM física ou metade desse valor, mas isso não é uma regra. Faça sua área de troca do tamanho que achar melhor, levando em consideração a arquitetura do seu kernel, o tamanho da sua memória RAM e a área em disco rígido disponível.
A área de troca DEVE ser definida em uma partição do disco rígido e DEVE ser formatada com o sistema de arquivos do tipo SWAP (mkswap). Excepcionalmente, é possível criar áreas de troca em arquivos, isso somente é feito em caso de emergência, pois reduz o desempenho do sistema como um todo, adiciona sobrecarga ao disco e apresenta desempenho inferior se comparado com SWAP em partição.
Devemos observar que uma área de troca NUNCA é montada, ela é ATIVADA ou DESATIVADA. Apenas partições que armazenam arquivos são montadas e desmontadas. Uma área de troca (SWAP) pode ser automaticamente ativada no momento do boot por uma entrada em
/etc/fstab. Isso confunde alguns usuários que pensam que áreas de troca são montadas.
Observe que em
/etc/fstab, o ponto de montagem é indicado como nenhum (none), o filesystem é do tipo "swap" e a opção de "montagem" aceita é "sw". Uma partição de swap JAMAIS pode ter um backup feito por DUMP ou ser checada por
fsck (isso destrói a SWAP, tornando-a inútil), por isso, o valor zero (0) deve ser inserido para esses dois parâmetros.
Um exemplo de entrada SWAP em
/etc/fstab, é:
/dev/sda2 none swap sw 0 0
Observe que a área de troca não é um sistema temporário tradicional como é
/tmp. As páginas de memória armazenadas na área de troca são programas e dados de programas no formato de binário em memória RAM. As páginas de memória salvas em SWAP, foram retiradas da memória RAM para dar lugar a outros programas e dados que estão em execução.
Os programas e seus dados armazenados na área de troca estão em estado suspenso (sleep), pois um programa somente pode ser executado na RAM. No caso do sistema temporário (
/tmp), quem controla a criação e remoção de arquivos é o próprio programa que se utiliza do recurso sistema temporário. No caso do sistema SWAP, quem controla a colocação e remoção das páginas em disco é o subsistema de memória do kernel.
Apesar de ser chamada de memória SWAP, a área de troca NÃO É MEMÓRIA. Ela NÃO emula memória em disco como muitas pessoas pensam. Isso é um mito. O processamento na RAM é da ordem de nanossegundos e a leitura do disco rígido é da ordem de milissegundos. Entre essas unidades, há uma distância da ordem de 1.000 vezes de diferença (10^3).
Logo, utilizar SWAP não é uma boa estratégia para desempenho, mas apenas uma estratégia de segurança do sistema, SWAP reduz o desempenho geral do sistema. Sistemas que estão demandando muito a área de troca, estão indicando que precisam imediatamente de mais RAM.
Aumentar a área de troca não aumenta a quantidade de memória do sistema e se a quantidade de SWAP for excessiva em relação à RAM, pode degradar ainda mais o sistema.