Configurar el numero de tareas paralelas realizadas por la aplicación
Este procedimiento permite modificar el numero de tareas asincronas ejecutadas en paralelo por la aplicación Cyberwatch.
Explicacion de las colas del software
El procesamiento de tareas de la aplicación se realiza de forma asincrona para permitir mejor rendimiento y paralelizacion de tareas.
Las tareas en espera se distribuyen en diferentes colas según el tipo de tarea:
- la cola
cbw_api_clientcontiene todas las tareas de sincronización con la base de seguridad central de Cyberwatch - la cola
defaultcontiene los jobs relativos a tratamientos automaticos del software (informes programados, reglas de activos…) - la cola
serverses relativa a las tareas de análisis de resultados de los activos supervisados - las otras colas llevan el nombre de los relays Cyberwatch registrados en la aplicación, las tareas asociadas se ejecutan exclusivamente por los escaneres (conexiones en modo sin agente, por ejemplo)
Numero de tareas ejecutadas en paralelo
Por defecto, la aplicación permite la ejecución paralela de:
- 6 tareas concurrentes relativas a las colas especificas de cada escaner por escaner Cyberwatch
- 4 tareas concurrentes para el tratamiento de tareas de las otras colas (
cbw_api_client,defaultyservers) por escaner Cyberwatch
Estos elementos pueden modificarse en la configuración del socle de la aplicación.
Corresponden respectivamente a las variables de entorno SIDEKIQ_NODE_CONCURRENCY y SIDEKIQ_CONCURRENCY definidas en los contenedores.
Estas tareas son tratadas respectivamente por los servicios sidekiq_node y sidekiq.
Adición de replicas sidekiq
Por defecto, sidekiq solo usara un CPU para tratar las tareas.
El valor por defecto del numero de tareas (4) permite en la mayoria de configuraciones usar la totalidad de un CPU para el procesamiento en paralelo de estas tareas.
En caso de latencia de la aplicación relacionada con un procesamiento demasiado lento de tareas, la primera aproximacion recomendada es autorizar a sidekiq a usar los dos CPU del servidor Cyberwatch.
Esto permitirá en un primer momento duplicar el numero de tareas que pueden ejecutarse simultaneamente por el escaner Cyberwatch.
Estas modificaciones solo deben realizarse tras la recomendacion de un ingeniero Cyberwatch.
Para ello, siga el procedimiento siguiente:
Modificar el archivo
/etc/cyberwatch/config.envy editar o agregar la linea siguiente:# Number of Sidekiq replicas to start. CBW_SIDEKIQ_REPLICAS=1
Reemplace 1 por el numero de replicas deseado.
Reiniciar Cyberwatch según el procedimiento estándar:
sudo cyberwatch restart
Modificación de los valores de SIDEKIQ_CONCURRENCY y SIDEKIQ_NODE_CONCURRENCY
Puede ser interesante modificar estos valores por defecto cuando la configuración de hardware del escaner Cyberwatch lo permita.
Estas modificaciones tienen como objetivo aumentar aun mas el numero de tareas que pueden ejecutarse en paralelo e idealmente eliminar o reducir las latencias potenciales encontradas en la aplicación.
Estas modificaciones solo deben realizarse tras la recomendacion de un ingeniero Cyberwatch.
Para modificarlas, siga el procedimiento siguiente:
Crear el archivo
/etc/cyberwatch/configs-enabled/99-sidekiq-concurrency.ymlcon el comando siguiente:cat >> /etc/cyberwatch/configs-enabled/99-sidekiq-concurrency.yml <<EOL version: '3.7' services: sidekiq: environment: SIDEKIQ_CONCURRENCY: "\${SIDEKIQ_CONCURRENCY}" sidekiq_node: environment: SIDEKIQ_NODE_CONCURRENCY: "\${SIDEKIQ_NODE_CONCURRENCY}" EOLLuego modificar el archivo
/etc/cyberwatch/containers.envy agregar las lineas siguientes:SIDEKIQ_CONCURRENCY=N SIDEKIQ_NODE_CONCURRENCY=Ndonde la variable
Ndebe tomar el valor del numero de hilos paralelos deseado para cada tipo de hilo.Reiniciar Cyberwatch según el procedimiento estándar:
sudo cyberwatch restart