Introdução
O desempenho e o comportamento de um sistema Linux podem ser ajustados dinamicamente utilizando duas interfaces especiais do kernel: os pseudo-sistemas de arquivos /proc e /sys. Essas interfaces permitem não apenas a visualização de informações em tempo real, mas também a modificação de parâmetros do kernel sem a necessidade de reinicialização. Neste artigo, exploraremos como fazer ajustes de performance, segurança e comportamento do sistema através dessas interfaces.
1. Entendendo o /proc
O diretório /proc é um pseudo-sistema de arquivos que fornece uma visão em tempo real sobre o estado do kernel e dos processos. Ele não ocupa espaço real em disco e é montado na memória.
Exemplos comuns:
/proc/cpuinfo– Informações sobre a CPU/proc/meminfo– Uso da memória/proc/[PID]/– Detalhes sobre processos ativos/proc/sys/– Parâmetros ajustáveis do kernel (sysctl)
2. Usando /proc/sys para tuning com sysctl
A maior parte dos ajustes de comportamento do sistema é feita em /proc/sys/. Esses parâmetros podem ser lidos ou modificados diretamente ou com o comando sysctl.
Exemplo 1: Aumentar o número de arquivos abertos
# Visualizar
cat /proc/sys/fs/file-max
# Alterar temporariamente
echo 2097152 > /proc/sys/fs/file-max
# Ou usando sysctl
sysctl -w fs.file-max=2097152
# Tornar permanente (em /etc/sysctl.conf ou /etc/sysctl.d/)
echo "fs.file-max = 2097152" >> /etc/sysctl.conf
Exemplo 2: Ativar proteção contra IP spoofing
sysctl -w net.ipv4.conf.all.rp_filter=1
sysctl -w net.ipv4.conf.default.rp_filter=1
3. Explorando o /sys
O /sys é outro pseudo-sistema de arquivos usado para interagir com dispositivos e subsistemas do kernel. Ele é gerenciado pelo udev e está organizado hierarquicamente.
Exemplo: Ajustar governança de CPU
# Ver governadores disponíveis
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
# Ver governador atual
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# Alterar o governador (exemplo: performance)
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Exemplo: Desabilitar auto-suspend USB
# Encontrar o dispositivo (exemplo: 1-1)
echo on > /sys/bus/usb/devices/1-1/power/control
4. Cuidados ao fazer tuning
- Persistência: alterações feitas diretamente em
/procou/syssão temporárias e se perdem após reboot. Para torná-las permanentes, use/etc/sysctl.conf,/etc/sysctl.d/*.confou regrasudevpara/sys. - Segurança: alguns ajustes podem comprometer a segurança do sistema. Exemplo: desativar o ASLR (
kernel.randomize_va_space) reduz a proteção contra ataques de buffer overflow. - Testes: sempre teste os efeitos das mudanças em ambiente de homologação antes de aplicar em produção.
5. Dicas úteis e comandos complementares
- Listar todos os parâmetros disponíveis:
sysctl -a
- Validar arquivos sysctl:
sysctl -p /etc/sysctl.conf
- Monitorar alterações em tempo real:
watch -n1 cat /proc/loadavg
Conclusão
O /proc e o /sys são poderosas ferramentas de administração que permitem afinar o comportamento do Linux de forma detalhada e dinâmica. Dominar essas interfaces é essencial para administradores que desejam extrair o máximo de desempenho e controle de seus sistemas. No entanto, cada mudança deve ser feita com responsabilidade, sempre considerando os impactos no sistema como um todo.
