User Tools

Site Tools


wiki:linux:comandos_grupos:cmd_memory

Nível Básico

1. Verificação do Uso de Memória com `free`

  • free -h - Exibe o uso de memória e swap de forma legível.
    1. Exemplo de uso:
      free -h
    2. Descrição: Mostra o uso de memória RAM e swap, exibindo o total, usado e disponível em um formato fácil de ler (MB/GB).

2. Verificação do Uso de Swap com `swapon` e `swapoff`

  • swapon -s - Lista as áreas de swap ativas.
    1. Exemplo de uso:
      swapon -s
    2. Descrição: Exibe todas as áreas de swap ativas no sistema, mostrando o dispositivo de swap e seu uso atual.
  • swapoff - Desativa uma partição de swap.
    1. Exemplo de uso:
      sudo swapoff /dev/sda2
    2. Descrição: Desativa a partição de swap localizada em /dev/sda2, útil para manutenção ou para redimensionamento de swap.

3. Ativação de Swap com `swapon`

  • swapon - Ativa uma partição de swap.
    1. Exemplo de uso:
      sudo swapon /dev/sda2
    2. Descrição: Ativa a partição de swap em /dev/sda2, tornando-a disponível para o sistema utilizar quando necessário.

4. Verificação de Processos com Uso de Memória com `ps`

  • ps aux –sort=-%mem - Lista processos ordenados por uso de memória.
    1. Exemplo de uso:
      ps aux --sort=-%mem
    2. Descrição: Exibe todos os processos em execução, ordenados pelo uso de memória, ajudando a identificar quais processos estão consumindo mais RAM.

Nível Intermediário

1. Criação de Arquivo de Swap com `dd`

  • dd - Cria um arquivo de swap.
    1. Exemplo de uso:
      sudo dd if=/dev/zero of=/swapfile bs=1G count=2
    2. Descrição: Cria um arquivo de swap de 2 GB no diretório raiz (/swapfile) usando o comando dd, preenchendo o arquivo com zeros.

2. Configuração de Permissões do Arquivo de Swap com `chmod`

  • chmod 600 - Define permissões de leitura/escrita no arquivo de swap.
    1. Exemplo de uso:
      sudo chmod 600 /swapfile
    2. Descrição: Define permissões restritas para o arquivo de swap, garantindo que apenas o root tenha acesso para ler e escrever no arquivo, garantindo segurança.

3. Inicialização do Arquivo de Swap com `mkswap`

  • mkswap - Inicializa um arquivo para uso como swap.
    1. Exemplo de uso:
      sudo mkswap /swapfile
    2. Descrição: Inicializa o arquivo /swapfile como uma área de swap válida, tornando-o pronto para ser ativado.

4. Ativação do Arquivo de Swap com `swapon`

  • swapon - Ativa o arquivo de swap.
    1. Exemplo de uso:
      sudo swapon /swapfile
    2. Descrição: Ativa o arquivo /swapfile como swap, permitindo que o sistema o utilize quando a memória física estiver cheia.

5. Montagem Permanente do Arquivo de Swap com `fstab`

  • fstab - Configura a ativação automática do swap na inicialização.
    1. Exemplo de uso:
    sudo nano /etc/fstab
    # Adicione a linha:
    /swapfile none swap sw 0 0
 
  1. Descrição: Configura o arquivo /swapfile para ser ativado automaticamente como swap durante a inicialização do sistema.

6. Monitoramento do Uso de Swap com `vmstat`

  • vmstat - Monitora a utilização de memória e swap.
    1. Exemplo de uso:
      vmstat 5
    2. Descrição: Exibe a utilização de memória, swap, CPU e I/O a cada 5 segundos, permitindo monitorar o uso de swap em tempo real e verificar a performance do sistema.

Nível Avançado

1. Ajuste do Desempenho de Swap com `swappiness`

  • sysctl - Ajusta a prioridade do uso de swap.
    1. Exemplo de uso:
      sudo sysctl vm.swappiness=10
    2. Descrição: Define o parâmetro swappiness para 10, o que significa que o sistema só usará swap quando a memória física estiver quase esgotada. O valor pode variar de 0 a 100, sendo que valores menores priorizam o uso de RAM.
  • /etc/sysctl.conf - Configura o swappiness permanentemente.
    1. Exemplo de uso:
    sudo nano /etc/sysctl.conf
    # Adicione a linha:
    vm.swappiness=10
 
  1. Descrição: Configura o valor de swappiness permanentemente, para ser aplicado a cada reinicialização do sistema.

2. Aumento do Tamanho do Arquivo de Swap com `dd`

  • dd - Expande um arquivo de swap existente.
    1. Exemplo de uso:
    sudo swapoff /swapfile
    sudo dd if=/dev/zero of=/swapfile bs=1G count=4
    sudo mkswap /swapfile
    sudo swapon /swapfile
 
  1. Descrição: Desativa o arquivo de swap atual, expande seu tamanho para 4 GB com dd, reinicializa o swap com mkswap e ativa o novo swap com swapon.

3. Redimensionamento de Partições de Swap com `resize2fs` e `parted`

  • parted - Redimensiona uma partição de swap.
    1. Exemplo de uso:
      sudo parted /dev/sda
    2. Descrição: Utiliza o parted para redimensionar a partição de swap localizada em /dev/sda, ajustando o tamanho da partição conforme necessário.
  • resize2fs - Ajusta o tamanho do sistema de arquivos em uma partição de swap.
    1. Exemplo de uso:
      sudo resize2fs /dev/sda2
    2. Descrição: Ajusta o sistema de arquivos da partição de swap após seu redimensionamento, garantindo que o sistema reconheça o novo tamanho.

4. Monitoramento Detalhado com `smem`

  • smem - Monitora o uso detalhado de memória por processo.
    1. Exemplo de uso:
      sudo smem -rs
    2. Descrição: Lista os processos ordenados pelo uso de memória residente (RAM), útil para identificar processos que estão consumindo mais memória do que o esperado.

5. Controle de Uso de Memória com `cgroups`

  • cgcreate - Cria um grupo de controle para limitar o uso de memória.
    1. Exemplo de uso:
      sudo cgcreate -g memory:/limitar_memoria
    2. Descrição: Cria um cgroup chamado limitar_memoria para controlar o uso de memória de processos.
  • cgset - Define o limite de memória para o cgroup.
    1. Exemplo de uso:
      sudo cgset -r memory.limit_in_bytes=1G limitar_memoria
    2. Descrição: Limita o uso de memória do cgroup limitar_memoria para 1 GB, útil para evitar que processos consumam mais memória do que o permitido.
  • cgexec - Executa um processo dentro de um cgroup com limite de memória.
    1. Exemplo de uso:
      sudo cgexec -g memory:/limitar_memoria /usr/bin/meu_programa
    2. Descrição: Executa o comando meu_programa dentro do cgroup limitar_memoria, garantindo que ele não ultrapasse o limite de memória estabelecido.

Nível Especializado

1. Uso de `zram` para Compressão de Memória

  • zram - Usa a compressão de memória RAM para aumentar a eficiência.
    1. Exemplo de uso:
    sudo modprobe zram
    echo lz4 | sudo tee /sys/block/zram0/comp_algorithm
    sudo zramctl --find --size 2G
    sudo mkswap /dev/zram0
    sudo swapon /dev/zram0
 
  1. Descrição: Configura um dispositivo zram com 2 GB de compressão de memória usando o algoritmo lz4, criando uma área de swap na memória comprimida para melhorar a eficiência em sistemas com pouca RAM.

2. Gerenciamento Avançado de Swap com `systemd`

  • systemd-swap - Gerencia swap dinâmico com systemd.
    1. Exemplo de uso:
    sudo apt install systemd-swap
    sudo systemctl enable --now systemd-swap
 
  1. Descrição: Usa o systemd-swap para configurar e gerenciar swap dinâmico, permitindo o uso de múltiplas áreas de swap e ajuste dinâmico baseado no uso de memória do sistema.

3. Otimização de Memória com `numactl` para Arquiteturas NUMA

  • numactl - Controla a afinidade de memória em sistemas com arquitetura NUMA.
    1. Exemplo de uso:
    numactl --membind=0 --cpunodebind=0 meu_programa
 
  1. Descrição: Executa meu_programa com a memória e CPU ligados ao nó 0 de uma arquitetura NUMA, garantindo que o processo utilize memória local ao nó da CPU, o que pode melhorar o desempenho.

4. Criação de Dispositivos Virtuais com `tmpfs` para Swap

  • tmpfs - Usa RAM como um sistema de arquivos temporário.
    1. Exemplo de uso:
    sudo mount -t tmpfs -o size=2G tmpfs /mnt/ramdisk
 
  1. Descrição: Monta um sistema de arquivos temporário em /mnt/ramdisk com 2 GB de RAM, útil para armazenar dados temporários que precisam de alta velocidade de acesso.
  • swapoff e swapon para tmpfs - Usa tmpfs para swap temporário.
    1. Exemplo de uso:
    sudo swapoff -a
    sudo mount -t tmpfs -o size=1G tmpfs /mnt/tmpfs_swap
    sudo mkswap /mnt/tmpfs_swap
    sudo swapon /mnt/tmpfs_swap
 
  1. Descrição: Cria um dispositivo de swap temporário de 1 GB usando tmpfs, ideal para ambientes que precisam de swap rápido, mas temporário.

5. Monitoramento de Memória com `perf` para Análise de Desempenho

  • perf stat - Coleta estatísticas detalhadas de uso de memória.
    1. Exemplo de uso:
    sudo perf stat -e mem_load_uops_l3_miss_retired.local_dram ls
 
  1. Descrição: Usa o perf para monitorar miss de cache L3 e acessos à DRAM local ao executar o comando ls. Este exemplo ajuda a identificar gargalos de memória em sistemas de alta performance.

6. Gerenciamento de Memória em Contêineres com `cgroups` e `Docker`

  • Docker - Limita o uso de memória de contêineres.
    1. Exemplo de uso:
    docker run --memory="1g" --memory-swap="2g" meu_container
 
  1. Descrição: Executa o contêiner meu_container limitando o uso de memória RAM a 1 GB, com até 2 GB incluindo swap, garantindo que o contêiner não ultrapasse esse limite.

7. Otimização e Controle de Desempenho com `HugePages`

  • HugePages - Usa páginas de memória maiores para otimizar o uso de RAM.
    1. Exemplo de uso:
    echo 512 | sudo tee /proc/sys/vm/nr_hugepages
 
  1. Descrição: Configura o sistema para usar 512 páginas de memória enormes (HugePages), que são mais eficientes em certos tipos de cargas de trabalho, como bancos de dados.
  • Montagem de HugePages com `mnt` - Usa HugePages em sistemas de arquivos.
    1. Exemplo de uso:
    sudo mount -t hugetlbfs none /mnt/hugepages -o pagesize=1G
 
  1. Descrição: Monta um sistema de arquivos usando HugePages de 1 GB em /mnt/hugepages, útil para otimizar aplicações que fazem uso intensivo de memória.
wiki/linux/comandos_grupos/cmd_memory.txt · Last modified: by Wiki Administrator