Saltar al contenido principal
El orquestador ajusta el tamaño del pool de trabajadores según la cola. Usted define los límites y la rapidez con la que reacciona.

Cómo se determina el tamaño del pool

acotado entre scaling.minWorkers y scaling.maxWorkers. El tiempo medio por unidad parte de scaling.defaultUnitSeconds y se va ajustando a los tiempos medidos a medida que se completan las unidades. Por ejemplo, 80 unidades en cola de 30 segundos cada una, con un objetivo de 120 segundos, requieren 20 trabajadores más. El pool crece en cuanto la cola lo requiere y solo se reduce después de que la cola haya requerido menos trabajadores durante scaling.scaleDownCooldownMs. No escale manualmente el Deployment del trabajador ni le adjunte un HorizontalPodAutoscaler. El orquestador restablece el número de réplicas en su siguiente comprobación.

Capacidad

Cada trabajador solicita worker.resources.requests (1 vCPU y 1 GB de forma predeterminada) y procesa una unidad a la vez. Para aumentar el rendimiento, incremente maxWorkers en lugar de asignar más CPU a los trabajadores. El orquestador solo crea pods, por lo que el clúster necesita un escalador automático de nodos que agregue los nodos necesarios para alojarlos. Antes de aumentar maxWorkers a varios cientos, compruebe tanto la cuota de CPU de su proveedor de nube como los límites del clúster. El chart define solicitudes de recursos, pero no límites. Si los trabajadores se desalojan por presión de memoria al procesar páginas grandes o de alta resolución, aumente worker.resources.requests.memory.

Arranques en frío

Con minWorkers: 0, el primer trabajo tras un periodo de inactividad debe esperar a que se programe un trabajador, se descargue su imagen y se inicie. Configure minWorkers para mantener trabajadores disponibles. Para acelerar los picos de carga en nodos nuevos, consulte Descarga previa de la imagen del trabajador.

Tamaño de las unidades y concesiones

Un PDF con más de ingest.pageSplitThreshold páginas (25) se divide en partes con ese número de páginas, y cada parte constituye una unidad de trabajo. Cuanto más pequeñas son las unidades, más trabajadores se reparten un documento grande. Un trabajador debe terminar una unidad en el plazo definido por orchestrator.workLeaseSeconds (300). De lo contrario, la unidad se asigna a otro trabajador y, tras orchestrator.workMaxAttempts (3) intentos, el trabajo falla con timed-out. Configure una concesión superior al tiempo que tarda su unidad más lenta, o reduzca el umbral de división.

Ingest y el orquestador

Ingest ejecuta ingest.replicas pods. Aumente este valor si las cargas o la división de archivos PDF mantienen ocupado a Ingest. El orquestador siempre se ejecuta con una sola réplica.