Configurar el nombre de tasques en paral·lel que executa l’aplicació

Aquest procediment permet modificar el nombre de tasques asíncrones que l’aplicació Cyberwatch executa en paral·lel.

Explicació de les cues d’espera del programari

L’aplicació processa les tasques de manera asíncrona per obtenir un rendiment millor i paral·lelitzar les tasques.

Les tasques en espera es col·loquen en diferents cues d’espera segons el tipus de tasca.

CuaServeisFunció principal
defaultsidekiq_masterTasques diverses.
reportssidekiq_masterGeneració de les exportacions i dels informes PDF.
serverssidekiq, sidekiq_masterCàlcul de les vulnerabilitats dels actius.
default:NODEsidekiq_nodeExecució dels descobriments i de les anàlisis dels actius.
web-scanner:NODEsidekiq_nodeExecució dels escanejos d’aplicacions web.

Algunes cues tenen una variant express que serveix per accelerar el processament de les tasques prioritàries. Comparteixen la mateixa capacitat de càlcul i no tenen concurrència pròpia, a excepció de reports-express, que en reserva una part.

Addició de rèpliques de Sidekiq

Per defecte, Sidekiq només utilitza una CPU per processar les tasques.

En la majoria de configuracions, el valor per defecte del nombre de tasques permet utilitzar tota una CPU per processar aquestes tasques en paral·lel.

En cas de latència de l’aplicació a causa d’un processament massa lent de les tasques, el primer enfocament recomanat és permetre que Sidekiq utilitzi les dues CPU del servidor Cyberwatch.

Això permetrà, en un primer moment, duplicar el nombre de tasques que l’escàner de Cyberwatch pot executar simultàniament.

Aquestes modificacions només s’han de fer per recomanació d’un enginyer de Cyberwatch.

Per fer-ho, seguiu el procediment següent:

  1. Modifiqueu el fitxer /etc/cyberwatch/config.env i editeu o afegiu la línia següent:

    # Number of Sidekiq replicas to start.
    CBW_SIDEKIQ_REPLICAS=1
    

    Substituïu 1 pel nombre de rèpliques que vulgueu.

  2. Reinicieu Cyberwatch segons el procediment estàndard:

    sudo cyberwatch restart
    

Configuració del nombre de fils d’execució

A més de configurar el nombre de processos de Sidekiq amb les rèpliques, es pot augmentar la capacitat de cadascun configurant-ne el nombre de fils d’execució (threads).

ServeiVariableRecursos limitantsCues afectades
sidekiqSIDEKIQ_CONCURRENCYCPUservers
sidekiq_masterSIDEKIQ_CONCURRENCYCPUdefault, servers
sidekiq_masterREPORTS_CONCURRENCYRAMreports
sidekiq_nodeSIDEKIQ_NODE_CONCURRENCYXarxadefault:NODE
sidekiq_nodeWEB_SCANNER_CONCURRENCYXarxa, CPU, RAMweb-scanner:NODE

La concurrència del servei sidekiq es pot augmentar a qualsevol node, i contribueix a la capacitat de càlcul global de la cua servers. Les altres cues són específiques d’un node, de manera que la configuració de la concurrència s’hi ha d’aplicar específicament per obtenir l’efecte desitjat.

Aquestes modificacions només s’han de fer per recomanació d’un enginyer de Cyberwatch.

Per configurar, per exemple, la variable SIDEKIQ_CONCURRENCY del servei sidekiq, modifiqueu el fitxer /etc/cyberwatch/configs-enabled/99-sidekiq-concurrency.yml d’aquesta manera:

version: '3.7'

services:
  sidekiq:
    environment:
      SIDEKIQ_CONCURRENCY: 4

A continuació, reinicieu la vostra instància amb sudo cyberwatch restart.

D’aquesta mateixa manera es poden configurar les altres variables dels altres serveis.

Configuració del nombre d’escanejos d’imatges Docker en paral·lel

Es pot configurar el nombre d’escanejos d’imatges Docker que l’aplicació Cyberwatch pot fer en paral·lel.

La modificació d’aquest valor pot tenir un impacte significatiu en el rendiment del sistema i en el consum de recursos. Es recomana modificar aquest valor només després d’haver consultat un enginyer de Cyberwatch.

Configuració per a Docker Swarm i Podman

Per modificar aquest valor en un entorn Docker Swarm o en un entorn Podman, seguiu el procediment següent:

  1. Modifiqueu el fitxer /etc/cyberwatch/config.env i editeu o afegiu la línia següent:

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

Substituïu 1 pel nombre de rèpliques que vulgueu. Per defecte, cada rèplica pot executar fins a 4 escanejos en paral·lel.

  1. Reinicieu Cyberwatch segons el procediment estàndard:

    sudo cyberwatch restart
    

Configuració per a Kubernetes

Per modificar aquest valor en un entorn Kubernetes, seguiu el procediment següent:

  1. Modifiqueu el fitxer values.yml i afegiu-hi les línies següents:

    containerScanner:
      replicaCount: N
    

    on la variable N ha de prendre el valor del nombre de rèpliques que vulgueu per al container-scanner. Per defecte, cada rèplica pot executar fins a 4 escanejos en paral·lel.

    Per repartir les rèpliques entre diversos nodes, vegeu el volum de treball del pod container-scanner.

  2. Apliqueu les modificacions segons el procediment estàndard de desplegament de Kubernetes.