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 forma asíncrona para permitir mejores prestaciones y una paralelización de las tareas.
Las tareas pendientes se almacenan en diferentes colas según el tipo de tarea.
| Cola | Servicios | Función principal |
|---|---|---|
| default | sidekiq_master | Tareas diversas. |
| reports | sidekiq_master | Generación de exportaciones e informes PDF. |
| servers | sidekiq, sidekiq_master | Cálculo de vulnerabilidades de los activos. |
| default:NODO | sidekiq_node | Ejecución de descubrimientos y análisis de activos. |
| web-scanner:NODO | sidekiq_node | Ejecución de escaneos de aplicación web. |
Algunas colas tienen una variante express que sirve para acelerar el procesamiento de tareas prioritarias. Comparten la misma capacidad de cálculo y no tienen 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 permitir que Sidekiq utilice 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:
Modifique el archivo
/etc/cyberwatch/config.envy edite o añada la siguiente línea:# Number of Sidekiq replicas to start. CBW_SIDEKIQ_REPLICAS=1Sustituya
1por el número de réplicas deseado.Reinicie Cyberwatch siguiendo 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 réplicas, es posible aumentar la capacidad de cada uno configurando su número de hilos de ejecución (threads).
| Servicio | Variable | Recursos limitantes | Colas afectadas |
|---|---|---|---|
| sidekiq | SIDEKIQ_CONCURRENCY | CPU | servers |
| sidekiq_master | SIDEKIQ_CONCURRENCY | CPU | default, servers |
| sidekiq_master | REPORTS_CONCURRENCY | RAM | reports |
| sidekiq_node | SIDEKIQ_NODE_CONCURRENCY | Red | default:NODO |
| sidekiq_node | WEB_SCANNER_CONCURRENCY | Red, CPU, RAM | web-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 ser dirigida a dicho nodo para obtener el efecto deseado.
Estas modificaciones deben realizarse únicamente tras la recomendación de un ingeniero de Cyberwatch.
Para configurar, por ejemplo, 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 de este modo configurar 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:
Modifique el archivo
/etc/cyberwatch/config.envy edite o añada la siguiente línea:# Number of container-scanner replicas to start. CBW_CONTAINER_SCANNER_REPLICAS=1
Sustituya 1 por el número de réplicas deseado.
Reinicie Cyberwatch siguiendo 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:
Modifique el archivo
values.ymly añada las siguientes líneas:containerScanner: replicaCount: Ndonde la variable
Ndebe tomar el valor del número de réplicas deseadas para el container-scanner. Cada réplica puede ejecutar hasta 4 escaneos en paralelo por defecto.Se aconseja tener los pods en el mismo nodo, o un volumen para container-scanner en
RWX (ReadWriteMany).Aplique las modificaciones según el procedimiento estándar de despliegue de Kubernetes.