Configurar el número de tareas paralelas realizadas por la aplicación

Este procedimiento permite modificar el número de tareas asíncronas ejecutadas en paralelo por la aplicación Cyberwatch.

Explicación de las colas de espera del software

El procesamiento de las tareas de la aplicación se realiza de manera asíncrona para permitir un mejor rendimiento y una paralelización de las tareas.

Las tareas en espera se organizan en diferentes colas según el tipo de tarea.

ColaServiciosFunción principal
defaultsidekiq_masterTareas diversas.
reportssidekiq_masterGeneración de exportaciones e informes PDF.
serverssidekiq, sidekiq_masterCálculo de las vulnerabilidades de los activos.
default:NODOsidekiq_nodeEjecución de descubrimientos y análisis de activos.
web-scanner:NODOsidekiq_nodeEjecución de escaneos de aplicaciones web.

Algunas colas tienen una variante express destinada a acelerar el procesamiento de las tareas prioritarias. Comparten la misma capacidad de cálculo y no tienen una concurrencia propia, a excepción de reports-express que reserva una parte.

Añadir réplicas Sidekiq

Por defecto, Sidekiq solo utilizará una CPU para procesar las tareas.

El valor por defecto del número de tareas permite en la mayoría de las configuraciones utilizar la totalidad de una CPU para el procesamiento en paralelo de estas tareas.

En caso de latencia de la aplicación relacionada con un procesamiento demasiado lento de las tareas, el primer enfoque recomendado es autorizar a Sidekiq a utilizar las dos CPU del servidor Cyberwatch.

Esto permitirá en un primer momento duplicar el número de tareas que pueden ejecutarse simultáneamente por el escáner Cyberwatch.

Estas modificaciones deben realizarse únicamente tras la recomendación de un ingeniero de Cyberwatch.

Para ello, siga el procedimiento a continuación:

  1. Modifique el archivo /etc/cyberwatch/config.env y edite o añada la siguiente línea:

    # Number of Sidekiq replicas to start.
    CBW_SIDEKIQ_REPLICAS=1
    

    Reemplace 1 por el número de réplicas deseado.

  2. Reinicie Cyberwatch según el procedimiento estándar:

    sudo cyberwatch restart
    

Configuración del número de hilos de ejecución

Además de configurar el número de procesos Sidekiq mediante las réplicas, es posible aumentar la capacidad de cada uno configurando su número de hilos de ejecución (threads).

ServicioVariableRecursos limitantesColas afectadas
sidekiqSIDEKIQ_CONCURRENCYCPUservers
sidekiq_masterSIDEKIQ_CONCURRENCYCPUdefault, servers
sidekiq_masterREPORTS_CONCURRENCYRAMreports
sidekiq_nodeSIDEKIQ_NODE_CONCURRENCYReddefault:NODO
sidekiq_nodeWEB_SCANNER_CONCURRENCYRed, CPU, RAMweb-scanner:NODO

La concurrencia del servicio sidekiq puede aumentarse en cualquier nodo, contribuyendo a la capacidad de cálculo global de la cola servers. Las demás colas son específicas de un nodo, por lo que la configuración de la concurrencia debe orientarse a dicho nodo para obtener el efecto deseado.

Estas modificaciones deben realizarse únicamente tras la recomendación de un ingeniero de Cyberwatch.

Por ejemplo, para configurar la variable SIDEKIQ_CONCURRENCY del servicio sidekiq, modifique el archivo /etc/cyberwatch/configs-enabled/99-sidekiq-concurrency.yml de la siguiente manera:

version: '3.7'

services:
  sidekiq:
    environment:
      SIDEKIQ_CONCURRENCY: 4

A continuación, reinicie su instancia con sudo cyberwatch restart.

Es posible configurar de la misma manera las demás variables de los otros servicios.

Configuración del número de escaneos de imágenes Docker en paralelo

Es posible configurar el número de escaneos de imágenes Docker que pueden realizarse en paralelo por la aplicación Cyberwatch.

Por defecto, si la variable no está configurada, el valor es de 4 escaneos en paralelo.

La modificación de este valor puede tener un impacto significativo en el rendimiento del sistema y el consumo de recursos. Se recomienda modificar este valor solo después de consultar con un ingeniero de Cyberwatch.

Configuración para Docker Swarm y Podman

Para modificar este valor en un entorno Docker Swarm o en un entorno Podman, siga el procedimiento a continuación:

  1. Modifique el archivo /etc/cyberwatch/config.env y edite o añada la siguiente línea:

    # Number of container-scanner replicas to start.
    CBW_CONTAINER_SCANNER_REPLICAS=1
    

Reemplace 1 por el número de réplicas deseado.

  1. Reinicie Cyberwatch según el procedimiento estándar:

    sudo cyberwatch restart
    

Configuración para Kubernetes

Para modificar este valor en un entorno Kubernetes, siga el procedimiento a continuación:

  1. Modifique el archivo values.yml y añada las siguientes líneas:

    containerScanner:
      replicaCount: N
    

    donde la variable N debe tomar el valor del número de réplicas deseado para el container-scanner. Cada réplica puede ejecutar hasta 4 escaneos en paralelo por defecto.

    Se recomienda tener los pods en el mismo nodo, o un volumen para container-scanner en RWX (ReadWriteMany).

  2. Aplique las modificaciones según el procedimiento estándar de despliegue de Kubernetes.


Volver arriba

English Français Español