implant swap

Gerencia o arquivo de swap /swapfile: cria e ativa com o tamanho pedido, desativa e remove, ou mostra o estado atual de RAM e swap.

Swap é a rede de segurança de servidores com pouca RAM: sem ele, um pico de memória aciona o OOM killer, que derruba processos (às vezes o próprio serviço principal). Com swap, o host fica mais lento sob pressão, mas continua de pé.

Uso

implant swap [OPTIONS] <SUBCOMANDO>

Requer root. As opções do comando (--size, --dry-run) vêm antes do subcomando:

sudo implant swap --size 4 enable     # correto
sudo implant swap enable --size 4     # erro: argumento inesperado

Subcomandos

Subcomando Descrição
enable Cria e ativa /swapfile e o registra no /etc/fstab
disable Desativa /swapfile, remove a entrada do fstab e apaga o arquivo
status Mostra RAM, swap ativo, existência do /swapfile e entrada no fstab

Flags

Flag Descrição
--size <GB> Tamanho do swap em GB, usado só pelo enable (padrão 2; 0 também vira 2)
--dry-run Simula sem aplicar mudanças
-o, --output <FORMATO> human (padrão), json ou yaml
-v, --verbose Mostra os comandos executados
-c, --config <ARQUIVO> Arquivo de configuração (padrão /etc/protocolo-implant/config.toml)
-t, --token <TOKEN> Token de identificação do servidor (ou PROTOCOLO_TOKEN)

O que é aplicado

`enable`

Só age se o host está sem nenhum swap ativo. Se já existe swap (arquivo ou partição, de qualquer tamanho), o enable não altera nada e apenas devolve o status — não redimensiona swap existente.

Sem swap ativo, executa em sequência:

Passo Comando Efeito
1 fallocate -l <N>G /swapfile (ou dd como fallback) Reserva o espaço em disco
2 chmod 600 /swapfile Só root lê o arquivo
3 mkswap /swapfile Formata como swap
4 swapon /swapfile Ativa imediatamente
5 Adiciona /swapfile none swap sw 0 0 ao /etc/fstab Persiste após reboot (não duplica a linha)

Garanta espaço livre em disco antes: um swap de 4 GB ocupa 4 GB no sistema de arquivos raiz.

`status`

Campo Significado
ram_mb RAM total em MB
swap_mb Swap ativo total em MB (qualquer origem)
swapfile_exists /swapfile existe
fstab_entry Há linha /swapfile no /etc/fstab
configured_size_gb Tamanho pedido no enable (0 em status/disable)

Relação com `check --auto-fix`

O check --auto-fix também cria swap, mas só em hosts com até 2 GB de RAM e sem nenhum swap, sempre com 2 GB. O implant swap enable não tem essa restrição de RAM e aceita qualquer tamanho via --size.

A preferência do kernel por RAM em vez de swap (vm.swappiness = 10) é ajustada pelo tuning de capacidade do check --auto-fix e pelo pack harden-network, não por este comando.

Como reverter

sudo implant swap disable

O disable executa swapoff /swapfile, remove do /etc/fstab as linhas que mencionam /swapfile e apaga o arquivo. Atua apenas sobre /swapfile: partições de swap ou arquivos com outro nome continuam ativos.

Antes de desativar, confira com status se a RAM livre comporta o que está em swap: o swapoff precisa trazer essas páginas de volta para a memória, e sem espaço o OOM killer pode agir.

implant reset --swap faz a mesma reversão.

Exemplos

# Estado atual
sudo implant swap status

# Criar swap de 2 GB (padrão)
sudo implant swap enable

# Criar swap de 4 GB, simulando antes
sudo implant swap --dry-run --size 4 enable
sudo implant swap --size 4 enable

# Remover o /swapfile
sudo implant swap disable

# Status em JSON
sudo implant swap status -o json

Saída JSON do status (resumida):

{
  "success": true,
  "command": "swap",
  "data": {
    "action": "status",
    "target": "swap",
    "result": "completed",
    "dry_run": false,
    "state": {
      "ram_mb": 1987,
      "swap_mb": 2047,
      "swapfile_exists": true,
      "fstab_entry": true,
      "configured_size_gb": 0
    }
  }
}

Veja também

  • check — cria swap automaticamente em hosts com pouca RAM
  • reset — --swap
  • limits — limites de file descriptors e processos