BlogVPS y Cloud
SERVER1 Logo Dark Icon
VPS y Cloud

PHP-FPM en un VPS pequeño: por dónde empezar el tuning

Ajusta PHP-FPM con mediciones: worker memory, pm.max_children, dynamic vs ondemand, queue, slowlog y headroom real de RAM.

SERVER1.GE3 min de lectura
PHP-FPM en un VPS pequeño: por dónde empezar el tuning

El tuning de PHP-FPM en un VPS pequeño debería empezar con un memory budget, no aumentando `pm.max_children` al azar. La pregunta útil es cuántas solicitudes PHP simultáneas puede mantener el servidor dejando suficiente RAM para la base de datos, el sistema operativo y la caché.

Mide primero un worker real

Observa el RSS de los procesos PHP-FPM con tráfico representativo. Si un worker consume alrededor de 90 MB, veinte workers podrían necesitar aproximadamente 1.8 GB solo para PHP. Es un ejemplo, no una regla universal: mide tu propia aplicación.

Memory budget de trabajo para un VPS de 4 GB

ComponentePor qué necesita RAM
OS + system servicesfuncionamiento básico y headroom
Databasebuffers, cache, connections
PHP-FPMworker count × RSS observado
Cache / monitoring / paneloverhead adicional permanente

la guía de optimización de WordPress es útil porque el tuning de workers no arregla un plugin pesado ni una query ineficiente. la guía para elegir un servidor de base de datos ayuda a contabilizar otro gran consumidor de RAM.

dynamic u ondemand?

dynamic

Buen punto de partida para tráfico variable cuando los spare workers y los límites están basados en mediciones.

ondemand

Puede ser útil con tráfico bajo o irregular cuando quieres reducir la memoria consumida por workers inactivos.

Encuentra el límite con mediciones

  1. mide la peak concurrency;
  2. observa la duración de las requests;
  3. vigila la queue y los eventos `max_children reached`;
  4. comprueba swap, DB latency y CPU al mismo tiempo;
  5. cambia un parámetro y vuelve a medir.

En VPS no administrado este tuning forma parte de tu propio stack. Si prefieres delegar las operaciones de OS y web stack, compara con Managed VPS y confirma hasta dónde llega el soporte de performance tuning.

Una fórmula sencilla que solo sirve como estimación inicial

Puedes pensar en el límite superior de esta forma:

RAM disponible para PHP ÷ RSS medio observado por worker = número teórico de workers.

No copies ese resultado directamente a `pm.max_children`. Necesitas headroom para traffic spikes, crecimiento de la memoria de la base de datos, OS page cache y requests más caras de lo normal. El límite de producción debería estar por debajo del máximo puramente teórico.

Qué signal apunta a qué problema

SeñalPosible interpretación
`max_children reached`límite de concurrencia bajo o requests demasiado largas
crece la queue con CPU libreworker limit o blocking operation
crece swapworkers, DB y cache superan la RAM
CPU saturada y queue crecienteañadir workers puede empeorar la situación
unas pocas requests son muy lentasslowlog/application profiling puede ser más importante

FPM status y slowlog forman parte del tuning

El tuning no consiste solo en mirar `top`. FPM status puede mostrar workers activos/inactivos, queues y saturation del process manager. Slowlog ayuda a localizar el PHP call path de requests que tardan demasiado.

Un ciclo de tuning de 24 horas

  1. registra un baseline durante un peak real;
  2. cambia un solo parameter importante;
  3. observa un patrón de tráfico comparable;
  4. compara p95 response time, queue, CPU, RAM y errors;
  5. haz rollback si el resultado empeora.

El error más común es confundir un capacity problem con un application problem. Si una request tarda tres segundos por una query ineficiente, más workers pueden limitarse a ejecutar más requests lentas al mismo tiempo.

SERVER1.GE

¿No sabes qué infraestructura se adapta a esta carga de trabajo?

Cuéntanos qué ejecutas, el tráfico esperado y tu configuración actual. Te ayudaremos a elegir la opción adecuada.

Consultar a SERVER1