Saltar al contenido
Contenido
Sitios web

Escalado y auto-escalado de una aplicación Node.js

Traducción automática. El original en inglés está disponible.

El escalado automático aumenta y reduce el número de instancias que ejecutan su aplicación Node.js a medida que cambia la carga de CPU, de modo que los períodos de mucha actividad obtienen más capacidad y los períodos tranquilos cuestan menos. Esta guía cubre la pestaña de KPanel, cada ajuste, qué se factura y cómo hacer que una aplicación sea segura para escalar.

Dónde Vive el Escalado en KPanel

  1. Inicie sesión en KPanel.
  2. Haga clic en Sitios web en la barra lateral izquierda y, a continuación, haga clic en el sitio.
  3. En el menú izquierdo del sitio, abra Rendimiento y, a continuación, Escalado.

La dirección directa es /websites/<site-id>/autoscale. La dirección anterior /websites/<site-id>/scaling sigue funcionando y lo envía al mismo lugar.

Ajustes de escalado automático para una aplicación Node.js en KPanel

La pestaña solo aparece en sitios Node.js. No estará en el menú para un sitio WordPress, WooCommerce, estático, PHP, Python o Ruby, porque el mecanismo escala un clúster de procesos Node.js.

Una Pestaña, Una Configuración

KPanel solía tener dos pestañas aquí, Escalado y Escalado automático, sobre un mismo conjunto de ajustes. Eran dos vistas de la misma configuración, lo cual solo servía para generar confusión, así que ahora son una sola pestaña Escalado: estado en vivo, los ajustes, eventos de escalado recientes y el panel de uso y costo del período de facturación actual, todo en un solo lugar.

Cómo Funciona

Su aplicación se ejecuta como un clúster de procesos. El escalado automático observa la CPU promedio en las instancias en ejecución y añade o elimina instancias según los umbrales que usted establezca.

Se requiere el modo clúster. Si su aplicación aún no se está ejecutando en modo clúster, al habilitar el escalado automático se cambia por usted, lo que implica un breve reinicio. La página le avisa cuando esto sucede.

Leer el Estado en Vivo

La tarjeta de estado muestra tres cosas:

  • Instancias: cuántas se están ejecutando en este momento.
  • CPU promedio: el promedio de CPU en esas instancias.
  • Clúster: si la aplicación está en modo clúster. Si dice que no, habilitar el escalado automático lo cambiará.

Si la aplicación no se está ejecutando en absoluto, la tarjeta lo indica en lugar de mostrar ceros.

La pestaña también muestra Último escalado, la hora del evento de escalado más reciente, o never.

Los Ajustes

AjusteRangoQué hace
Instancias mínimas1 a 16El piso. Nunca escala por debajo de este valor
Instancias máximas1 a 16El techo. Nunca escala por encima de este valor
Escalar hacia arriba en CPU %5 a 99Una CPU promedio por encima de este valor añade una instancia
Escalar hacia abajo en CPU %1 a 95Una CPU promedio por debajo de este valor elimina una instancia
Enfriamiento (seg)30 a 3600Espera mínima entre acciones de escalado

El interruptor principal es el control deslizante en el encabezado de la tarjeta de ajustes. Cuando el escalado automático está desactivado, los ajustes aparecen atenuados y su aplicación se mantiene en su número de instancias actual.

Valores iniciales sensatos:

  • Instancias mínimas 1 o 2. Dos si no puede tolerar que el reinicio de una sola instancia deje la aplicación fuera de servicio.
  • Instancias máximas según lo que esté dispuesto a pagar en el pico, no según el techo técnico.
  • Escalar hacia arriba alrededor del 70 por ciento. Lo bastante alto como para no pagar por un margen que nunca usa, y lo bastante bajo como para que haya tiempo de añadir capacidad antes de que las solicitudes empiecen a acumularse.
  • Escalar hacia abajo alrededor del 30 por ciento. Deje un amplio margen entre los dos umbrales.
  • Enfriamiento de unos minutos. Este es el ajuste más infravalorado.

Establecer los dos umbrales de CPU demasiado cerca entre sí provoca oscilaciones: el clúster escala hacia arriba, cae inmediatamente por debajo del umbral de reducción porque la carga ahora se reparte más, escala hacia abajo, vuelve a dispararse, y se repite. Mantenga un margen amplio y use un enfriamiento generoso. Las oscilaciones cuestan dinero y desestabilizan la aplicación.

Eventos de Escalado

La pestaña enumera los eventos de escalado recientes, los más nuevos primero, cada uno mostrando la dirección, el número de instancias antes y después, la lectura de CPU que lo provocó y la hora.

Este es el registro que hay que leer cuando la aplicación se comportó mal. Una ráfaga de eventos de subida y bajada en pocos minutos significa que sus umbrales están demasiado cerca o que su enfriamiento es demasiado corto. Un único escalado hacia arriba que nunca volvió a bajar significa que la carga se mantuvo alta, lo cual es una cuestión de capacidad más que de configuración. No tener ningún evento cuando esperaba alguno significa que la CPU nunca cruzó un umbral o que el escalado automático está desactivado.

Qué Cuesta el Escalado Automático

Las instancias por encima de la asignación base de su plan se miden y facturan por segundo. La pestaña muestra, para el período actual:

  • Tiempo de instancia utilizado, en horas y minutos, con los segundos de instancia en bruto debajo.
  • Gastado hasta el momento en este período.
  • Proyección de fin de mes, extrapolada a partir del uso hasta ahora.
  • Tracking, cuántas ventanas de uso se han facturado del total registrado.
  • Progreso del período, días transcurridos de los días del mes.

La tarifa por segundo se muestra en la parte superior de ese mismo panel, de modo que la cifra sobre la que se le factura siempre está visible junto al uso al que se aplica.

La proyección es la cifra a vigilar. Se extrapola a partir de lo que ha usado hasta el momento, así que una semana inusualmente ocupada a principios de mes la exagerará. Revísela a los pocos días, y de nuevo a mediados de mes, antes de sacar conclusiones. Si es más alta de lo que desea, reduzca el número máximo de instancias en lugar de subir el umbral de escalado hacia arriba: el techo es un límite estricto, un umbral es solo una indicación.

Reducir hasta el mínimo detiene la medición. Si desactiva por completo el escalado automático, la aplicación se mantiene con el número de instancias que tenga en ese momento, así que redúzcalo primero al mínimo si el costo es la razón por la que lo está desactivando.

Hacer que una Aplicación Sea Segura para Escalar

La página lleva una advertencia, y es lo más importante que contiene: su aplicación Node.js debe ser segura para clústeres para escalar de forma limpia entre instancias.

En la práctica, eso significa:

Sin estado de sesión en memoria. Si la sesión de un usuario conectado vive en la memoria de una instancia, se cierra su sesión cada vez que una solicitud llega a una instancia distinta. Traslade las sesiones a un almacén compartido.

Sin caché en memoria del que dependa para la corrección. Cada instancia tiene la suya propia. Una caché que debe ser consistente tiene que compartirse.

Sin escrituras en el sistema de archivos local que espere volver a leer. Las subidas escritas en disco local por una instancia son invisibles para las demás. Escriba en almacenamiento compartido.

Sin trabajo programado sin protección. Si un temporizador se ejecuta dentro de la aplicación, cada instancia lo ejecuta, así que un trabajo nocturno con cuatro instancias se ejecuta cuatro veces. Traslade el trabajo programado a un cron job, o protéjalo con un bloqueo. Consulte Trabajos Cron.

Sin suponer que el número de instancias es estable. Cualquier cosa que reparta el trabajo por índice de instancia se rompe en el momento en que cambia el número.

Si alguno de estos casos se aplica a su aplicación, corríjalo antes de habilitar el escalado automático. Una aplicación que no es segura para clústeres falla de maneras intermitentes y difíciles de reproducir, porque dependen de qué instancia atendió qué solicitud.

Solución de Problemas

El interruptor no se activa. Habilitarlo requiere el permiso de escritura sobre el sitio. Con un rol de solo lectura, los controles están deshabilitados.

La aplicación se reinició cuando habilité el escalado automático. Es lo esperado. Cambiar al modo clúster requiere un reinicio, y ocurre una sola vez.

Los usuarios están siendo desconectados al azar. Síntoma clásico de falta de seguridad para clústeres. Las sesiones están en memoria y las solicitudes llegan a instancias distintas.

Las instancias escalaron hacia arriba y nunca bajaron. O bien la carga se mantuvo por encima del umbral de reducción, o algo está manteniendo la CPU alta independientemente del tráfico. Revise la lista de eventos y observe qué está haciendo realmente la aplicación.

Un trabajo programado se ejecutó varias veces. Cada instancia lo ejecutó. Trasládelo a un cron job o añada un bloqueo.

Nada escala. Confirme que el interruptor está activado, que la aplicación se está ejecutando y que el modo clúster está habilitado. Luego revise si la CPU realmente cruzó su umbral de escalado hacia arriba en la lista de eventos.

El costo es más alto de lo esperado. Busque oscilaciones en la lista de eventos y, a continuación, reduzca el número máximo de instancias.

Páginas Relacionadas

¿Le ha resultado útil?

¿Es usted una IA? Lea esta página en Markdown

Artículos relacionados

Cómo conectarse mediante SFTP: FileZilla, Cyberduck y línea de comandosSFTP (Protocolo de Transferencia Segura de Archivos) le brinda acceso directo a los archivos de su sitio en el servidor.…Certificados SSL y HTTPSEste artículo explica qué es SSL en términos sencillos, cómo KapsuleHost gestiona SSL de forma automática para sus sitios y qué hacer si algo falla con su…Sitios web: Por dónde empezarCómo funciona el alojamiento de sitios web en KapsuleHost, qué contiene cada pestaña de un sitio y qué guía leer según la tarea que tenga por delante.…Monitorización del tiempo de actividad del sitioCada sitio en KapsuleHost se comprueba automáticamente cada 60 segundos, y la pestaña Uptime le muestra el resultado: estado actual, porcentaje de actividad,…

¿Sigue sin resolverlo?

Pregunte a Kora, que conoce su cuenta, o contacte con nuestro equipo.

ContáctenosContactar soporte