Introdução
Neste laboratório, você aprenderá como verificar a configuração de overcommit (sobrecarga) de memória virtual no Linux. Você usará o comando sysctl para visualizar o parâmetro do kernel vm.overcommit_memory e entender seus diferentes valores.
Você também explorará o sistema de arquivos /proc, especificamente o diretório /proc/sys/vm, para ver como os parâmetros do kernel são expostos como arquivos. Finalmente, você inspecionará o arquivo /etc/sysctl.conf para ver como essas configurações podem ser configuradas de forma persistente. Este laboratório fornecerá uma compreensão prática de como verificar e entender as configurações de overcommit do kernel em um ambiente Linux.
Verificar overcommit com sysctl vm.overcommit
Nesta etapa, você aprenderá como verificar a configuração de overcommit de memória virtual no Linux usando o comando sysctl.
O overcommit de memória virtual é um recurso no Linux que permite ao sistema alocar mais memória para os processos do que a fisicamente disponível. Isso pode ser benéfico em alguns casos, mas também pode levar a problemas se os processos realmente tentarem usar toda a memória que lhes foi alocada.
O comando sysctl é usado para visualizar e modificar os parâmetros do kernel em tempo de execução. Nós o usaremos para verificar o valor do parâmetro vm.overcommit_memory.
Abra o terminal, se ainda não o fez. Você pode fazer isso clicando no ícone Xfce Terminal no lado esquerdo da área de trabalho.
Agora, digite o seguinte comando no terminal e pressione Enter:
sysctl vm.overcommit_memory
Este comando solicita ao kernel que mostre o valor atual do parâmetro vm.overcommit_memory.
Você deve ver uma saída semelhante a esta:
vm.overcommit_memory = 0
O valor 0 indica o tratamento heurístico padrão de overcommit. Outros valores possíveis são 1 (sempre overcommit) e 2 (nunca overcommit). Entender essa configuração é importante para o desempenho e a estabilidade do sistema, especialmente em ambientes com alta demanda de memória.
Clique em Continuar para prosseguir para a próxima etapa.
Verificar configurações em /proc/sys/vm
Nesta etapa, você explorará o sistema de arquivos /proc, especificamente o diretório /proc/sys/vm, para ver como os parâmetros do kernel relacionados à memória virtual são expostos.
O sistema de arquivos /proc é um sistema de arquivos virtual que fornece informações sobre processos e outras informações do sistema. É um ótimo lugar para inspecionar o estado atual do kernel. O diretório /proc/sys dentro de /proc contém arquivos que correspondem aos parâmetros do kernel que podem ser visualizados e, às vezes, modificados em tempo de execução.
O diretório /proc/sys/vm contém arquivos relacionados ao subsistema de memória virtual. O parâmetro vm.overcommit_memory que verificamos na etapa anterior tem um arquivo correspondente neste diretório.
Vamos usar o comando cat para visualizar o conteúdo do arquivo que representa vm.overcommit_memory. O comando cat é usado para exibir o conteúdo dos arquivos.
Digite o seguinte comando em seu terminal e pressione Enter:
cat /proc/sys/vm/overcommit_memory
Este comando lerá o conteúdo do arquivo overcommit_memory localizado em /proc/sys/vm e o imprimirá em seu terminal.
Você deve ver o mesmo valor que viu com o comando sysctl na etapa anterior:
0
Isso demonstra que sysctl está essencialmente lendo ou escrevendo nesses arquivos no sistema de arquivos /proc/sys.
Você também pode listar os arquivos no diretório /proc/sys/vm para ver outros parâmetros relacionados à memória virtual. Use o comando ls:
ls /proc/sys/vm/
Você verá uma lista de arquivos, cada um representando um parâmetro diferente do kernel relacionado à memória virtual.
compact_hueristic
compact_memory
dirty_background_bytes
dirty_background_ratio
dirty_bytes
dirty_expire_centisecs
dirty_ratio
dirty_writeback_centisecs
drop_caches
extfrag_threshold
hugetlb_shm_group
laptop_mode
lowmem_reserve_ratio
min_free_bytes
min_slab_ratio
min_unmapped_ratio
mmap_min_addr
nr_hugepages
nr_hugepages_mempolicy
nr_overcommit_hugepages
numa_balancing
numa_balancing_scan_period_max_ms
numa_balancing_scan_period_min_ms
numa_balancing_scan_size_mb
numa_balancing_settle_count
numa_balancing_timeout
oom_dump_tasks
oom_kill_allocating_task
overcommit_memory
overcommit_ratio
page-cluster
panic_on_oom
percpu_pagelist_fraction
stat_interval
swappiness
user_reserve_kbytes
vfs_cache_pressure
watermark_boost_factor
watermark_scale_factor
zone_reclaim_mode
Isso lhe dá uma visão dos muitos parâmetros ajustáveis disponíveis no subsistema de memória virtual do kernel Linux.
Clique em Continuar para prosseguir.
Inspecionar configuração com cat /etc/sysctl.conf
Nesta etapa, você aprenderá sobre o arquivo /etc/sysctl.conf, que é usado para configurar os parâmetros do kernel de forma persistente em todas as reinicializações.
Embora você possa alterar os parâmetros do kernel em tempo de execução usando o comando sysctl ou escrevendo em arquivos em /proc/sys, essas alterações geralmente são temporárias e serão perdidas quando o sistema for reiniciado. Para tornar as alterações nos parâmetros do kernel permanentes, você normalmente as adiciona ao arquivo /etc/sysctl.conf ou aos arquivos no diretório /etc/sysctl.d/.
Quando o sistema inicializa, ele lê as configurações de /etc/sysctl.conf e as aplica.
Vamos usar o comando cat novamente para visualizar o conteúdo do arquivo /etc/sysctl.conf.
Digite o seguinte comando em seu terminal e pressione Enter:
cat /etc/sysctl.conf
Isso exibirá o conteúdo do arquivo de configuração principal do sysctl.
Você pode ver linhas começando com #, que são comentários e são ignoradas. Outras linhas estarão no formato parâmetro = valor, semelhante ao que você viu com a saída do comando sysctl.
#
## /etc/sysctl.conf - Arquivo de configuração para definir variáveis do sistema
## Veja os arquivos /etc/sysctl.d/ .conf para outras variáveis do sistema
#
#kernel.domainname = example.com
## Descomente o seguinte para parar mensagens de baixo nível no console
#kernel.printk = 3 4 1 3
##############################################################3
## Funções encontradas anteriormente em netbase
#
## Descomente as duas linhas a seguir para habilitar a proteção contra ataques de Spoofing
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1
## Descomente a próxima linha para habilitar cookies TCP/IP SYN
#net.ipv4.tcp_syncookies=1
## Descomente a próxima linha para habilitar o encaminhamento de pacotes para IPv4
#net.ipv4.ip_forward=1
## Descomente a próxima linha para habilitar o encaminhamento de pacotes para IPv6
#net.ipv6.conf.all.forwarding=1
##############################################################3
## Eliminar ninguém no kernel
#
#kernel.yama.ptrace_scope = 1
##############################################################3
## Chave mágica de solicitação do sistema
#
#kernel.sysrq = 176
##############################################################3
## Memória compartilhada dinâmica:
#
#kernel.shmmax = 4294967295
#kernel.shmall = 268435456
##############################################################3
## Outras configurações
#
#fs.file-max = 100000
#vm.swappiness = 60
#vm.vfs_cache_pressure = 50
#kernel.nmi_watchdog = 0
Observe que o parâmetro vm.overcommit_memory pode não estar explicitamente definido neste arquivo. Se um parâmetro não estiver definido em /etc/sysctl.conf ou /etc/sysctl.d/, o kernel usará seu valor padrão. O valor que você viu com o comando sysctl e em /proc/sys/vm/overcommit_memory é o valor atualmente ativo, que pode ser o padrão ou definido por outro arquivo de configuração ou script durante a inicialização.
Entender /etc/sysctl.conf é crucial para o ajuste persistente do sistema.
Clique em Continuar para finalizar este laboratório.
Resumo
Neste laboratório, você aprendeu como verificar a configuração de overcommit de memória virtual no Linux. Você usou o comando sysctl vm.overcommit_memory para visualizar o valor atual deste parâmetro do kernel, entendendo que um valor de 0 indica o tratamento heurístico padrão, 1 significa sempre overcommit e 2 significa nunca overcommit.
Você também explorou o sistema de arquivos /proc, especificamente o diretório /proc/sys/vm, para ver como os parâmetros do kernel, como vm.overcommit_memory, são expostos como arquivos dentro deste sistema de arquivos virtual, fornecendo uma maneira alternativa de inspecionar o estado atual do kernel em relação às configurações de memória virtual.



