Tu VPS puede rendir mucho más de lo que rinde ahora. La mayoría de servidores funcionan con configuraciones por defecto que no aprovechan los recursos disponibles.
Con los ajustes correctos, un VPS de 4GB puede superar a uno de 8GB mal configurado. No es magia, es optimización.
Esta guía te muestra las optimizaciones más efectivas, ordenadas de mayor a menor impacto.
El enfoque correcto
Medir antes de optimizar
No optimices a ciegas. Primero identifica el cuello de botella:
# Ver uso de recursos en tiempo real
htop
# Uso de disco
iostat -x 1
# Uso de red
iftop
# Procesos que más consumen
ps aux --sort=-%mem | head -10
ps aux --sort=-%cpu | head -10
Los 4 recursos a optimizar
- CPU - Procesamiento
- RAM - Memoria
- Disco - I/O de almacenamiento
- Red - Ancho de banda y latencia
El cuello de botella suele estar en uno de estos. Identifícalo primero.
Capas de optimización
La optimización funciona en capas:
- Sistema operativo - Kernel, memoria, disco
- Servidor web - Nginx, Apache, LiteSpeed
- Base de datos - MySQL, PostgreSQL
- Aplicación - PHP, Node, Python
- Caché - Redis, Memcached, OPcache
Optimiza de abajo hacia arriba. De nada sirve un PHP ultra-rápido si el disco es lento.
Optimización del sistema operativo
Ajustes de kernel (sysctl)
Edita /etc/sysctl.conf:
# Memoria
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5
# Red
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_tw_reuse = 1
# Archivos abiertos
fs.file-max = 2097152
Aplica:
sudo sysctl -p
Límites del sistema
Edita /etc/security/limits.conf:
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
Swap óptimo
El swap no es RAM, pero ayuda en picos:
# Crear swap de 2GB si no tienes
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Hacerlo permanente
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Configura swappiness bajo (10) para que use RAM primero.
Optimizar sistema de archivos
Si puedes elegir, usa ext4 con opciones optimizadas o XFS para alto I/O.
En /etc/fstab:
/dev/sda1 / ext4 defaults,noatime,nodiratime 0 1
noatime evita actualizar timestamps en cada lectura (mejora I/O).
Optimización del servidor web
Nginx (recomendado)
Nginx es más eficiente que Apache para la mayoría de casos.
Configuración optimizada (/etc/nginx/nginx.conf):
worker_processes auto;
worker_rlimit_nofile 65535;
events {
worker_connections 65535;
multi_accept on;
use epoll;
}
http {
# Básicos
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
types_hash_max_size 2048;
# Buffers
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 50M;
large_client_header_buffers 4 32k;
# Gzip
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml application/json application/javascript application/xml;
# Caché de archivos estáticos
open_file_cache max=65535 inactive=60s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
}
Apache (si lo necesitas)
Si usas Apache, activa MPM Event:
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2
Configura /etc/apache2/mods-available/mpm_event.conf:
<IfModule mpm_event_module>
StartServers 4
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 10000
</IfModule>
LiteSpeed (el más rápido)
Si buscas máximo rendimiento, LiteSpeed es la mejor opción. Los VPS de Avantys incluyen LiteSpeed como opción.
Optimización de PHP
PHP-FPM (obligatorio)
Nunca uses mod_php. PHP-FPM es mucho más eficiente.
Configuración (/etc/php/8.3/fpm/pool.d/www.conf):
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
Calcula max_children:
max_children = RAM disponible / memoria por proceso PHP
Para un VPS de 4GB con ~30MB por proceso:
max_children = 3000MB / 30MB = 100 (usa 50-70 para dejar margen)
OPcache (obligatorio)
OPcache cachea el bytecode PHP. Actívalo siempre.
En /etc/php/8.3/fpm/conf.d/10-opcache.ini:
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_cli=0
PHP 8.3+ (usa la última versión)
Cada versión de PHP es significativamente más rápida. PHP 8.3 es hasta 3x más rápido que PHP 7.4.
Actualiza siempre que puedas.
Optimización de bases de datos
MySQL / MariaDB
Edita /etc/mysql/mysql.conf.d/mysqld.cnf:
[mysqld]
# InnoDB
innodb_buffer_pool_size = 1G # 50-70% de RAM disponible
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
# Query cache (desactivar en MySQL 8+)
query_cache_type = 0
query_cache_size = 0
# Conexiones
max_connections = 200
thread_cache_size = 50
# Temporales
tmp_table_size = 64M
max_heap_table_size = 64M
# Logs lentos
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
El parámetro más importante es innodb_buffer_pool_size. Asígnale el 50-70% de la RAM disponible.
PostgreSQL
Edita /etc/postgresql/16/main/postgresql.conf:
shared_buffers = 1GB # 25% de RAM
effective_cache_size = 3GB # 75% de RAM
work_mem = 64MB
maintenance_work_mem = 256MB
wal_buffers = 64MB
checkpoint_completion_target = 0.9
random_page_cost = 1.1 # Para SSD/NVMe
Sistemas de caché
Redis (recomendado)
Redis cachea datos en memoria. Ideal para sesiones, objetos y page cache.
Instalación:
sudo apt install redis-server -y
sudo systemctl enable redis-server
Configuración (/etc/redis/redis.conf):
maxmemory 512mb
maxmemory-policy allkeys-lru
Memcached (alternativa)
sudo apt install memcached -y
En /etc/memcached.conf:
-m 512 # 512MB de RAM
-c 2048 # Conexiones máximas
Varnish (caché HTTP)
Varnish cachea páginas completas. Ideal para sitios con mucho tráfico.
sudo apt install varnish -y
Configura Nginx para pasar tráfico a Varnish (puerto 6081) y Varnish a tu backend.
Optimización específica para WordPress
Si usas WordPress en tu VPS, estas optimizaciones son críticas:
- OPcache: Siempre activo
- Object cache: Redis con plugin (Redis Object Cache)
- Page cache: LiteSpeed Cache o WP Super Cache
- CDN: Cloudflare (gratis)
- Base de datos: Limpia regularmente con WP-Optimize
Más detalles en nuestra guía de WordPress lento y mejor VPS para WordPress.
Monitorización continua
No optimices una vez y te olvides. Monitoriza continuamente.
Herramientas recomendadas
Netdata (dashboard en tiempo real):
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
htop (procesos interactivo):
sudo apt install htop -y
iotop (I/O de disco):
sudo apt install iotop -y
Alertas
Configura alertas para:
- CPU > 80% sostenido
- RAM > 90%
- Disco > 85%
- Load average alto
Checklist de optimización
Sistema operativo
| Optimización | Impacto | ✓ |
|---|---|---|
| sysctl ajustado | Alto | ☐ |
| Límites aumentados | Medio | ☐ |
| Swap configurado | Medio | ☐ |
| noatime en fstab | Bajo | ☐ |
Servidor web
| Optimización | Impacto | ✓ |
|---|---|---|
| Nginx/LiteSpeed | Alto | ☐ |
| Gzip activo | Alto | ☐ |
| Keep-alive | Medio | ☐ |
| Worker processes | Medio | ☐ |
PHP
| Optimización | Impacto | ✓ |
|---|---|---|
| PHP-FPM | Alto | ☐ |
| OPcache | Muy alto | ☐ |
| PHP 8.3+ | Alto | ☐ |
| Pool ajustado | Medio | ☐ |
Base de datos
| Optimización | Impacto | ✓ |
|---|---|---|
| Buffer pool | Muy alto | ☐ |
| Query optimization | Alto | ☐ |
| Índices correctos | Alto | ☐ |
Caché
| Optimización | Impacto | ✓ |
|---|---|---|
| Redis/Memcached | Alto | ☐ |
| Page cache | Muy alto | ☐ |
| CDN | Alto | ☐ |
Errores comunes
Error 1: Optimizar sin medir
“Mi servidor es lento” no dice nada. ¿Es CPU? ¿RAM? ¿Disco? ¿Red? Mide primero.
Error 2: Copiar configuraciones sin entender
Una configuración para servidor de 32GB no sirve para uno de 4GB. Adapta siempre a tus recursos.
Error 3: Ignorar la aplicación
A veces el problema no es el servidor, es código ineficiente, queries lentas o plugins pesados.
Error 4: No monitorizar después
Las condiciones cambian. Lo que funcionaba hace 6 meses puede no funcionar ahora.
Cuándo necesitas más recursos
Si después de optimizar sigues con problemas:
- CPU siempre al 100%: Necesitas más cores
- RAM siempre llena: Necesitas más memoria
- Disco I/O saturado: Necesitas NVMe más rápido
- Todo optimizado y sigue lento: Escala verticalmente
Los VPS de Avantys permiten escalar recursos sin migrar.
Preguntas frecuentes
¿Cuánto rendimiento puedo ganar optimizando?
Depende del punto de partida. Es común ver mejoras del 50-200% en tiempos de respuesta con las optimizaciones correctas.
¿Estas optimizaciones son seguras?
Sí, son configuraciones estándar de producción. Pero siempre haz backup antes de cambiar configuraciones.
¿Necesito reiniciar después de los cambios?
Algunos cambios requieren reiniciar servicios (nginx, php-fpm, mysql). Los cambios de sysctl se aplican con sysctl -p.
¿Puedo romper algo?
Con valores incorrectos de buffer_pool o max_children puedes causar problemas. Empieza conservador y ajusta.
Nuestra recomendación
Máximo impacto con mínimo esfuerzo:
- OPcache para PHP (mejora inmediata)
- Buffer pool de MySQL al 50% RAM
- Nginx con gzip
- Redis para object cache
Estas 4 optimizaciones cubren el 80% de las mejoras posibles.
¿No quieres complicarte? La administración gestionada incluye optimización profesional de tu VPS.
Conclusión
Un VPS bien optimizado rinde mucho más que uno con configuración por defecto. La clave es medir primero, optimizar las capas correctas y monitorizar después.
Empieza por OPcache y buffer pool de MySQL. Son los cambios de mayor impacto. Luego ajusta según lo que muestren tus métricas.
¿Quieres un VPS optimizado desde el primer día? Explora los VPS de Avantys con configuración profesional incluida.
Guías relacionadas
- Monitorizar tu VPS con Netdata
- Securizar un VPS Linux
- Mejor VPS para WordPress
- VPS administrado vs no administrado
¿Quieres la guía completa con todos los casos de uso?
¿Quieres que lo hagamos por ti?
En Avantys gestionamos tu web, hosting y crecimiento digital de punta a punta. Tú a lo importante.