El L4D2 Dedicated Server Optimizer es un sistema modular desarrollado por AoC-Gamers que permite aplicar optimizaciones específicas al sistema operativo para mejorar el rendimiento de servidores dedicados de Left 4 Dead 2.
- Optimización Modular: Sistema de módulos independientes para diferentes aspectos del sistema
 - Configuración Centralizada: Variables de entorno para personalizar cada optimización
 - Seguridad: Sistema de respaldos automáticos antes de aplicar cambios
 - Monitoreo: Registro detallado de todas las operaciones y estados
 - Compatibilidad: Soporte específico para sistemas Debian/Ubuntu
 - Facilidad de Uso: Menú interactivo con información detallada de cada módulo
 
L4D2-Dedicated-Server-Optimizer/
├── server-optimizer.sh    # Script principal con menú interactivo
├── .env.example          # Plantilla de configuración
├── modules/              # Módulos de optimización
│   ├── disk_opt.sh       # Optimización de disco I/O
│   ├── dns_optimizer.sh  # Configuración DNS optimizada
│   ├── ipv6_disable.sh   # Deshabilitación IPv6
│   ├── irq_opt.sh        # Optimización IRQ
│   ├── network_*.sh      # Módulos de red (base, avanzado, tcp/udp)
│   ├── swap_opt.sh       # Optimización memoria virtual
│   ├── thp_disable.sh    # Deshabilitación Transparent Huge Pages
│   └── template.sh       # Plantilla para nuevos módulos
└── docs/                 # Documentación del proyecto
- Sistema operativo compatible: Debian 11/12 o Ubuntu 20.04/22.04/24.04
 - Acceso root al servidor
 - Bash 4.0 o superior
 
# 1. Clonar el repositorio
git clone https://github.com/AoC-Gamers/L4D2-Dedicated-Server-Optimizer.git
cd L4D2-Dedicated-Server-Optimizer
# 2. Configurar permisos de ejecución
chmod +x server-optimizer.sh
chmod +x modules/*.sh
# 3. Copiar y personalizar la configuración (opcional)
cp .env.example .env
nano .env
# 4. Ejecutar el optimizador
sudo ./server-optimizer.sh- 
swap_opt.sh- Optimización Memoria Virtual- Configura 
vm.swappiness=10para reducir uso de swap - Habilita 
vm.overcommit_memory=1para mejor gestión de memoria - Impacto: Mejora la gestión de memoria y reduce el uso de swap para mejor rendimiento
 
 - Configura 
 - 
thp_disable.sh- Deshabilitación Transparent Huge Pages- Desactiva THP que puede causar latencia impredecible
 - Crea servicio systemd para persistencia tras reinicios
 - Impacto: Reduce latencia y mejora consistencia del rendimiento
 
 
- 
network_base.sh- Configuración Base de Red- Optimiza buffers del kernel (
rmem_max,wmem_max) - Ajusta 
netdev_max_backlogpara mejor manejo de paquetes - Impacto: Optimiza buffers de red para reducir pérdida de paquetes y mejorar rendimiento UDP
 
 - Optimiza buffers del kernel (
 - 
network_advanced.sh- Configuración Avanzada de Red- Configura disciplinas de cola (
fq_codel,fq,pfifo_fast) - Ajusta MTU y desactiva offloads problemáticos
 - Impacto: Configuración avanzada de red para latencia mínima y máximo throughput
 
 - Configura disciplinas de cola (
 - 
tcp_udp_params.sh- Parámetros TCP/UDP Avanzados- Habilita BBR congestion control para TCP
 - Optimiza parámetros UDP específicos para gaming
 - Impacto: Optimiza TCP congestion control y memoria UDP para mejor rendimiento de red
 
 - 
dns_optimizer.sh- Optimización DNS- Configura servidores DNS de alta velocidad (Cloudflare, Google, OpenDNS, Quad9)
 - Soporte para DNS personalizados
 - Impacto: Mejora conectividad del servidor y reduce latencia en operaciones de red
 
 - 
ipv6_disable.sh- Deshabilitación IPv6- Desactiva IPv6 mediante sysctl y GRUB
 - Evita problemas de conectividad dual-stack
 - Impacto: Elimina problemas de conectividad IPv6 y simplifica configuración de red
 
 
disk_opt.sh- Optimización I/O de Disco- Configura scheduler I/O optimizado (
mq-deadline,kyber,bfq) - Ajustes específicos para SSDs y HDDs
 - Impacto: Mejora rendimiento de I/O para carga/guardado más rápido de mapas y datos
 
- Configura scheduler I/O optimizado (
 
irq_opt.sh- Optimización IRQ- Balancea interrupciones entre núcleos CPU
 - Habilita Receive Packet Steering (RPS)
 - Impacto: Distribuye interrupciones de red para mejor utilización de CPU multinúcleo
 
- 
docker_processes.sh- Optimización de Procesos en Contenedores- Prioriza procesos L4D2/srcds con nice -20 (máxima prioridad CPU)
 - Configura I/O real-time para procesos del juego
 - Monitoreo continuo y re-priorización automática
 - Impacto: Garantiza máxima prioridad para el servidor del juego, reduce micro-stutters en 100 tick
 
 - 
docker_filesystem.sh- Optimización de Sistema de Archivos en Contenedores- Utiliza tmpfs (RAM) para logs, demos y cache temporal
 - Optimiza parámetros I/O del kernel dentro del contenedor
 - Sistema automático de limpieza y rotación de archivos
 - Impacto: Elimina latencia de disco en operaciones críticas, mejora tiempos de carga
 
 - 
docker_networking.sh- Optimización de Red en Contenedores- Buffers TCP/UDP optimizados para gaming (16MB)
 - TCP_NODELAY y BBR congestion control
 - Desactiva hardware offloading para menor latencia
 - Impacto: Reduce latencia de red 5-15ms, mejora estabilidad de hitreg en 100 tick
 
 
El sistema utiliza un archivo .env para configuración centralizada:
# Ejemplo de configuración de red
NETWORK_DNS_PROVIDER="cloudflare"          # Proveedor DNS
NETWORK_TCP_CONGESTION="bbr"               # Control de congestión TCP
NETWORK_MTU_SIZE="1500"                    # Tamaño MTU
MEMORY_SWAPPINESS="10"                     # Tendencia a usar swap
DISK_SCHEDULER="mq-deadline"               # Scheduler I/O
# Configuración específica para Docker
DOCKER_PROCESS_SRCDS_NICE="-20"            # Prioridad máxima para srcds
DOCKER_FS_TMPFS_SIZE="512M"                # Tamaño tmpfs para cache
DOCKER_NET_BUFFER_SIZE="16777216"          # Buffers de red (16MB)- Respaldo automático de archivos de configuración
 - Almacenamiento en 
/var/lib/l4d2-optimizer/backups/ - Comandos de estado del sistema antes de cambios
 
# Habilitar modo debug en .env
OPTIMIZER_DEBUG=1
# Información detallada en terminal y logs
# Archivo debug: /var/log/l4d2-optimizer/debug.log- 🔍 Verificación de Dependencias: Validación automática de módulos y paquetes requeridos
 - ⏱️ Sistema de Timeout: Protección contra módulos bloqueados
 - 📝 Registro Completo: Logs detallados de todas las operaciones
 - 🔄 Gestión de Estado: Seguimiento del estado de instalación de cada módulo
 - 🎯 Categorización: Módulos organizados por tipo (memoria, red, disco, cpu, etc.)
 - 🛡️ Modo Seguro: Verificaciones de compatibilidad antes de ejecutar
 
El sistema incluye un template.sh que facilita la creación de nuevos módulos de optimización. Consulta la documentación en docs/template.md para aprender a desarrollar tus propios módulos.
docs/server-optimizer.md- Funcionamiento del sistema principaldocs/template.md- Guía para desarrollo de módulos
docs/irq_opt.md- IRQ Optimization - Optimización de interrupciones CPUdocs/disk_opt.md- Disk Optimization - Optimización de scheduler I/O de discodocs/network_advanced.md- Network Advanced - Configuraciones avanzadas de red (QDisc, MTU, Offloads)docs/ipv6_disable.md- IPv6 Disable - Desactivación completa del protocolo IPv6docs/thp_disable.md- THP Disable - Desactivación de Transparent HugePages para menor latenciadocs/dns_optimizer.md- DNS Optimizer - Optimización de servidores DNS para mejor conectividaddocs/network_base.md- Network Base - Configuración fundamental de buffers y parámetros de reddocs/swap_opt.md- Swap Optimization - Optimización de memoria virtual y swappinessdocs/tcp_udp_params.md- TCP/UDP Parameters - Optimización de protocolos TCP y UDP
docs/docker_processes.md- Docker Process Optimization - Priorización de procesos L4D2 en contenedoresdocs/docker_filesystem.md- Docker Filesystem Optimization - Sistema de archivos optimizado con tmpfsdocs/docker_networking.md- Docker Network Optimization - Stack de red containerizada para gaming
/var/log/l4d2-optimizer/
├── optimizer.log    # Log principal del sistema
└── debug.log       # Log detallado (modo debug)/var/lib/l4d2-optimizer/
├── module_status    # Estado de instalación de módulos
└── backups/        # Respaldos automáticos- Requiere permisos root para modificar configuraciones del sistema
 - Crear respaldos antes de usar en producción
 - Probar en entorno de desarrollo antes de aplicar en servidores en vivo
 - Revisar logs después de cada aplicación de módulos
 
- Issues: GitHub Issues
 - Discusiones: GitHub Discussions
 - Wiki: GitHub Wiki
 
Este proyecto está licenciado bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
Las contribuciones son bienvenidas. Por favor:
- Haz fork del proyecto
 - Crea una rama para tu funcionalidad
 - Commit tus cambios
 - Push a la rama
 - Abre un Pull Request
 
Desarrollado por AoC-Gamers para la comunidad de Left 4 Dead 2.
¿Te ha sido útil este proyecto? ⭐ Dale una estrella en GitHub!