wiki:linux:comandos_grupos:cmd_memory
Table of Contents
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.
- Exemplo de uso:
free -h
- 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.
- Exemplo de uso:
swapon -s - 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.
- Exemplo de uso:
sudo swapoff /dev/sda2
- 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.
- Exemplo de uso:
sudo swapon /dev/sda2
- 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.
- Exemplo de uso:
ps aux --sort=-%mem
- 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.
- Exemplo de uso:
sudo dd if=/dev/zero of=/swapfile bs=1G count=2
- Descrição: Cria um arquivo de swap de 2 GB no diretório raiz (
/swapfile) usando o comandodd, 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.
- Exemplo de uso:
sudo chmod 600 /swapfile
- 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.
- Exemplo de uso:
sudo mkswap /swapfile
- Descrição: Inicializa o arquivo
/swapfilecomo 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.
- Exemplo de uso:
sudo swapon /swapfile
- Descrição: Ativa o arquivo
/swapfilecomo 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.
- Exemplo de uso:
sudo nano /etc/fstab # Adicione a linha: /swapfile none swap sw 0 0
- Descrição: Configura o arquivo
/swapfilepara 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.
- Exemplo de uso:
vmstat 5
- 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.
- Exemplo de uso:
sudo sysctl vm.swappiness=10
- Descrição: Define o parâmetro
swappinesspara 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.
- Exemplo de uso:
sudo nano /etc/sysctl.conf # Adicione a linha: vm.swappiness=10
- Descrição: Configura o valor de
swappinesspermanentemente, 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.
- Exemplo de uso:
sudo swapoff /swapfile sudo dd if=/dev/zero of=/swapfile bs=1G count=4 sudo mkswap /swapfile sudo swapon /swapfile
- Descrição: Desativa o arquivo de swap atual, expande seu tamanho para 4 GB com
dd, reinicializa o swap commkswape ativa o novo swap comswapon.
3. Redimensionamento de Partições de Swap com `resize2fs` e `parted`
- parted - Redimensiona uma partição de swap.
- Exemplo de uso:
sudo parted /dev/sda
- Descrição: Utiliza o
partedpara 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.
- Exemplo de uso:
sudo resize2fs /dev/sda2
- 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.
- Exemplo de uso:
sudo smem -rs
- 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.
- Exemplo de uso:
sudo cgcreate -g memory:/limitar_memoria
- Descrição: Cria um cgroup chamado
limitar_memoriapara controlar o uso de memória de processos.
- cgset - Define o limite de memória para o cgroup.
- Exemplo de uso:
sudo cgset -r memory.limit_in_bytes=1G limitar_memoria
- Descrição: Limita o uso de memória do cgroup
limitar_memoriapara 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.
- Exemplo de uso:
sudo cgexec -g memory:/limitar_memoria /usr/bin/meu_programa
- Descrição: Executa o comando
meu_programadentro do cgrouplimitar_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.
- 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
- Descrição: Configura um dispositivo
zramcom 2 GB de compressão de memória usando o algoritmolz4, 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.
- Exemplo de uso:
sudo apt install systemd-swap sudo systemctl enable --now systemd-swap
- Descrição: Usa o
systemd-swappara 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.
- Exemplo de uso:
numactl --membind=0 --cpunodebind=0 meu_programa
- Descrição: Executa
meu_programacom 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.
- Exemplo de uso:
sudo mount -t tmpfs -o size=2G tmpfs /mnt/ramdisk
- Descrição: Monta um sistema de arquivos temporário em
/mnt/ramdiskcom 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.
- 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
- 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.
- Exemplo de uso:
sudo perf stat -e mem_load_uops_l3_miss_retired.local_dram ls
- Descrição: Usa o
perfpara monitorar miss de cache L3 e acessos à DRAM local ao executar o comandols. 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.
- Exemplo de uso:
docker run --memory="1g" --memory-swap="2g" meu_container
- Descrição: Executa o contêiner
meu_containerlimitando 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.
- Exemplo de uso:
echo 512 | sudo tee /proc/sys/vm/nr_hugepages
- 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.
- Exemplo de uso:
sudo mount -t hugetlbfs none /mnt/hugepages -o pagesize=1G
- 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
