Hosting Equipo Avantys 10 min

Optimizar Rendimiento en VPS DirectAdmin: Guía Completa

Guía completa para optimizar tu VPS con DirectAdmin: PHP-FPM, OPcache, MariaDB, Redis, LiteSpeed y configuraciones avanzadas de rendimiento.

// Compartir

Optimizar Rendimiento en VPS DirectAdmin: Guía Completa

// Índice de contenidos

Optimizar rendimiento en VPS DirectAdmin: guía completa de configuración

Un VPS mal configurado puede desperdiciar hasta el 70% de sus recursos. La diferencia entre un servidor lento y uno optimizado no está en el hardware, sino en la configuración.

Esta guía cubre todas las optimizaciones que puedes aplicar a un VPS con DirectAdmin: desde PHP y OPcache hasta MariaDB, Redis y configuración de servidor web.

Stack de rendimiento recomendado

Stack de rendimiento óptimo para VPS DirectAdmin

Para máximo rendimiento en WordPress y aplicaciones PHP:

ComponenteRecomendaciónPor qué
Servidor webLiteSpeed u OpenLiteSpeed3-5x más rápido que Apache
PHP8.1+ con PHP-FPMMejor rendimiento y seguridad
Caché PHPOPcache activadoReduce tiempo de compilación PHP
Base de datosMariaDB 10.6+Más rápido que MySQL
Object cacheRedisReduce consultas a BD
Caché páginaLiteSpeed CacheCaché a nivel de servidor

Optimizar PHP-FPM

PHP-FPM (FastCGI Process Manager) es fundamental para el rendimiento. DirectAdmin lo incluye por defecto.

Configurar PHP-FPM por dominio

Cada dominio puede tener su propia configuración PHP-FPM:

  1. En DirectAdmin, ve a Domain Setup → tu dominio
  2. Selecciona PHP Version Settings
  3. Configura los valores de PHP-FPM

Valores recomendados según RAM

RAM VPSpm.max_childrenpm.start_serverspm.min_sparepm.max_spare
2 GB10213
4 GB20426
8 GB408412
16 GB8016824

Configuración recomendada para WordPress

Edita el archivo de configuración PHP-FPM del dominio:

pm = dynamic
pm.max_children = 20
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
pm.max_requests = 500
pm.process_idle_timeout = 10s

pm.max_requests = 500 reinicia los procesos cada 500 peticiones para evitar memory leaks.

Calcular max_children óptimo

Fórmula: (RAM disponible - RAM sistema) / RAM por proceso PHP

Ejemplo para VPS 4GB:

  • RAM disponible: 4000 MB
  • RAM sistema/servicios: 1000 MB
  • RAM por proceso PHP: ~50-100 MB
  • max_children = (4000 - 1000) / 75 = ~40

Empieza conservador (20) y ajusta según monitorización.

Configurar OPcache

OPcache acelera PHP almacenando el código compilado en memoria. En lugar de recompilar cada script en cada petición, lo sirve desde caché.

Habilitar OPcache en DirectAdmin

Por SSH como root:

cd /usr/local/directadmin/custombuild
./build set opcache yes
./build opcache

Configuración recomendada de OPcache

Edita /usr/local/php8x/lib/php.conf.d/opcache.ini:

[opcache]
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=0
opcache.validate_timestamps=1
opcache.fast_shutdown=1
opcache.save_comments=1

Explicación de parámetros

ParámetroValorExplicación
memory_consumption256MB de RAM para caché (ajustar según uso)
interned_strings_buffer16MB para strings internos
max_accelerated_files10000Número máximo de scripts en caché
revalidate_freq0Verificar cambios en cada petición (prod: 60)
validate_timestamps1Detectar cambios en archivos
fast_shutdown1Liberación rápida de memoria

Monitorizar OPcache

Instala opcache-gui para ver estadísticas:

cd /var/www/html
wget https://raw.githubusercontent.com/amnuts/opcache-gui/master/index.php -O opcache.php

Accede a https://tu-servidor:2222/opcache.php para ver:

  • Memoria usada vs disponible
  • Hit rate (debe ser >95%)
  • Scripts en caché

Elimina el archivo después de revisar por seguridad.

Optimizar MariaDB

MariaDB es el motor de base de datos por defecto en DirectAdmin. Una configuración adecuada puede mejorar el rendimiento 2-5x.

Archivo de configuración

Edita /etc/my.cnf o crea /etc/my.cnf.d/custom.cnf:

[mysqld]
# Conexiones
max_connections = 150
max_user_connections = 50
wait_timeout = 30
interactive_timeout = 30

# Buffers
key_buffer_size = 256M
sort_buffer_size = 2M
read_buffer_size = 1M
read_rnd_buffer_size = 1M
join_buffer_size = 2M

# InnoDB (el más importante)
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_file_per_table = 1

# Tablas temporales
tmp_table_size = 128M
max_heap_table_size = 128M

# Cache de consultas (desactivar en MariaDB 10.4+)
query_cache_type = 0
query_cache_size = 0

# Logs
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 2

# Otros
skip-name-resolve

Calcular innodb_buffer_pool_size

Es el parámetro más importante. Regla general:

RAM VPSinnodb_buffer_pool_size
2 GB512M
4 GB1G
8 GB3G
16 GB8G

Debe ser ~50-70% de la RAM disponible para el servidor de BD.

Usar MySQLTuner

MySQLTuner analiza tu configuración y sugiere mejoras:

wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
perl mysqltuner.pl

Ejecuta después de 24-48h de uso normal para recomendaciones precisas.

Reiniciar MariaDB

Después de cambios:

systemctl restart mariadb

Instalar y configurar Redis

Redis es un almacén en memoria que reduce drásticamente las consultas a la base de datos.

Instalar Redis en DirectAdmin

cd /usr/local/directadmin/custombuild
./build set redis yes
./build redis
./build set php1_release 8.2
./build php_redis

Configuración de Redis

Edita /etc/redis/redis.conf:

maxmemory 256mb
maxmemory-policy allkeys-lru
save ""
appendonly no

maxmemory: Ajusta según RAM disponible (256MB-1GB típico).

allkeys-lru: Elimina las claves menos usadas cuando se llena.

Habilitar Redis por usuario en DirectAdmin

  1. Ve a User LevelAdvanced FeaturesRedis
  2. Activa Redis para el usuario
  3. Anota el socket: /home/usuario/.redis/redis.sock

Configurar Redis en WordPress (con LiteSpeed Cache)

  1. Instala el plugin LiteSpeed Cache
  2. Ve a LiteSpeed CacheCacheObject
  3. Configura:
OpciónValor
Object CacheON
MethodRedis
Host/home/usuario/.redis/redis.sock
Port0
  1. Guarda y verifica “Connection Test: Passed”

VPS DirectAdmin Administrado

Potencia y eficiencia al mejor precio con DirectAdmin. Soporte 24/7 en español.

Ver Planes DirectAdmin

Configurar LiteSpeed/OpenLiteSpeed

LiteSpeed es significativamente más rápido que Apache. DirectAdmin soporta ambas versiones.

Instalar OpenLiteSpeed

cd /usr/local/directadmin/custombuild
./build set webserver openlitespeed
./build openlitespeed
./build rewrite_confs

Ventajas de LiteSpeed

CaracterísticaApacheLiteSpeed
Consumo RAMAltoBajo
Conexiones concurrentesLimitadasMiles
Event-drivenNo
Caché integradaNoSí (LSCache)
Compatibilidad .htaccess

Configurar LiteSpeed Cache (WordPress)

  1. Instala el plugin LiteSpeed Cache desde WordPress
  2. Configuración recomendada:

Cache → Cache:

OpciónValor
Enable CacheON
Cache Logged-in UsersOFF
Cache CommentersOFF
Cache REST APION

Cache → TTL:

OpciónValor
Default Public Cache604800 (1 semana)
Default Private Cache1800
Default Front Page604800

Page Optimization:

OpciónValor
CSS MinifyON
JS MinifyON
HTML MinifyON
Load CSS AsynchronouslyON (probar)
Load JS DeferredON

Purgar caché LiteSpeed

Desde WordPress:

  • Barra admin → LiteSpeed CachePurge All

Desde SSH:

rm -rf /home/usuario/lscache/*

Optimizaciones adicionales de PHP

Configuración php.ini recomendada

Edita el php.ini del usuario o versión PHP:

; Memoria y tiempo
memory_limit = 256M
max_execution_time = 300
max_input_time = 300
max_input_vars = 5000

; Uploads
upload_max_filesize = 64M
post_max_size = 64M

; Seguridad
expose_php = Off
display_errors = Off
log_errors = On

; Sesiones
session.gc_maxlifetime = 1440
session.cookie_httponly = 1
session.cookie_secure = 1

; Realpath cache
realpath_cache_size = 4096K
realpath_cache_ttl = 600

Extensiones PHP recomendadas

Verifica que estén activas:

php -m | grep -E "opcache|redis|imagick|gd|curl|mbstring|xml"

Instalar extensiones faltantes:

cd /usr/local/directadmin/custombuild
./build set_php imagick yes
./build php_imagick

Compresión y headers

Habilitar compresión GZIP

En .htaccess o configuración LiteSpeed:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml
    AddOutputFilterByType DEFLATE text/css text/javascript
    AddOutputFilterByType DEFLATE application/javascript application/x-javascript
    AddOutputFilterByType DEFLATE application/json application/xml
    AddOutputFilterByType DEFLATE application/rss+xml application/atom+xml
    AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

Cache de recursos estáticos

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/webp "access plus 1 year"
    ExpiresByType image/svg+xml "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType font/woff2 "access plus 1 year"
</IfModule>

Monitorización del rendimiento

Métricas clave para monitorizar rendimiento del VPS

Métricas clave a vigilar

MétricaValor idealAcción si excede
CPU<70% mediaRevisar procesos, optimizar código
RAM<80% usoAumentar RAM o reducir max_children
Disk I/O<50%Usar NVMe, optimizar queries
TTFB<200msRevisar caché, BD, PHP
Load Average< nº CPUsIdentificar cuellos de botella

Comandos útiles de monitorización

Ver carga del sistema:

htop

Ver conexiones MySQL activas:

mysqladmin processlist

Ver uso de memoria por proceso:

ps aux --sort=-%mem | head -20

Analizar queries lentas:

tail -f /var/log/mysql-slow.log

Ver estadísticas PHP-FPM:

curl http://127.0.0.1/status?full

Herramientas de benchmark

Apache Bench:

ab -n 1000 -c 50 https://tudominio.com/

Siege:

siege -c 25 -t 60s https://tudominio.com/

Checklist de optimización

Revisa que hayas aplicado todas las optimizaciones:

  • LiteSpeed u OpenLiteSpeed instalado
  • Compresión GZIP activa
  • Headers de caché configurados
  • PHP 8.1+ con PHP-FPM
  • OPcache activado y configurado
  • max_children ajustado a RAM
  • memory_limit adecuado
  • MariaDB 10.6+
  • innodb_buffer_pool_size optimizado
  • Slow query log activo
  • MySQLTuner ejecutado
  • Redis instalado y funcionando
  • Object cache en WordPress activo
  • LiteSpeed Cache configurado
  • CDN configurado (opcional)

FAQ: Preguntas frecuentes

¿Cuánta mejora de rendimiento puedo esperar?

Con todas las optimizaciones aplicadas correctamente, puedes esperar mejoras de 3-10x en tiempo de carga y capacidad de usuarios concurrentes. El TTFB típicamente baja de 800ms a menos de 200ms.

¿LiteSpeed es mejor que Apache?

Sí, significativamente. LiteSpeed maneja más conexiones concurrentes con menos recursos y tiene caché integrada a nivel de servidor. Para WordPress, la diferencia puede ser de 3-5x en rendimiento.

¿Cuánta RAM debo asignar a la base de datos?

Entre 50-70% de la RAM disponible para el servidor de base de datos. En un VPS de 4GB dedicado a web+BD, unos 1-1.5GB es razonable. En servidores dedicados solo a BD, puede ser hasta 80%.

¿Redis u Object Cache mejoran el rendimiento de WordPress?

Sí. Redis almacena en memoria los resultados de consultas frecuentes a la base de datos. En sitios con muchas consultas (WooCommerce, membership), puede reducir la carga de BD un 50-80%.

¿Cómo sé si OPcache está funcionando correctamente?

Usa opcache-gui o phpinfo(). Busca un hit rate superior al 95%. Si es menor, aumenta memory_consumption o max_accelerated_files. También verifica que opcache.enable=1 en php.ini.

¿Puedo usar estas optimizaciones con cPanel?

Sí, la mayoría aplican igual. La diferencia está en las rutas de configuración y herramientas (EasyApache vs CustomBuild). Los conceptos de PHP-FPM, OPcache, MariaDB y Redis son los mismos.

¿Cada cuánto debo revisar la configuración?

Revisa MySQLTuner mensualmente o tras cambios significativos de tráfico. Monitoriza CPU/RAM diariamente con alertas. Ajusta PHP-FPM si cambias la carga del servidor.

¿Qué hago si el servidor sigue lento tras optimizar?

Revisa: 1) Plugins WordPress problemáticos, 2) Queries SQL lentas (slow log), 3) Ataques o bots (logs Apache/LiteSpeed), 4) Límites del hardware (necesitas más RAM/CPU), 5) Red/latencia del datacenter.

Conclusión

Optimizar un VPS con DirectAdmin requiere ajustar múltiples componentes. Los mayores impactos vienen de:

  1. Cambiar a LiteSpeed - El cambio más impactante
  2. Configurar OPcache correctamente - Reduce tiempo PHP 50-80%
  3. Ajustar innodb_buffer_pool_size - Acelera todas las consultas
  4. Añadir Redis - Elimina consultas repetitivas

No apliques todos los cambios de golpe. Implementa uno, mide el impacto, y continúa con el siguiente.

Guías relacionadas del cluster VPS DirectAdmin

Profundiza en DirectAdmin:


VPS DirectAdmin Administrado

Potencia y eficiencia al mejor precio con DirectAdmin. Soporte en español.

Ver VPS gestionado
// Boletín

Suscríbete al boletín

Guías nuevas, sin spam. Cancela cuando quieras.