#!/bin/bash

# Eletronica Veneza 2026 - Aplicador sysctl.conf
# Debian / Ubuntu

ARQUIVO="/etc/sysctl.conf"

# Verifica root
if [ "$(id -u)" != "0" ]; then
    echo "Execute como root."
    exit 1
fi

echo "Limpando $ARQUIVO ..."

cat > $ARQUIVO << 'EOF'
# Eletronica Veneza 2026 - Base Config Debian Cloud Lite

# Kernel deve tentar manter o maximo possivel de dados em memoria principal
vm.swappiness = 10

# Evitar que o sistema fique sobrecarregado com muitos dados sujos na memoria.
# Melhora a gestao de cache
vm.vfs_cache_pressure = 75
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5

# Aumentar o numero maximo de conexoes simultaneas
net.core.somaxconn = 65535

# Aumentar o tamanho maximo do buffer de recepcao e transmissao de rede
net.ipv4.tcp_mem = 4096 87380 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# Melhorar o desempenho da conexao e evitar congestionamentos
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_timestamps = 1

# Reduzir o tempo limite de conexao TCP
net.ipv4.tcp_fin_timeout = 15

# Ativar o escalonamento de fila de recepcao de pacotes de rede
net.core.netdev_max_backlog = 8192
EOF

echo "Aplicando configuracoes..."
sysctl -p

echo "Concluido com sucesso."
