Aller au contenu principal
Version : Suivant

Simuler des scénarios de stress

Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Introduction à StressChaos

Chaos Mesh propose des expériences StressChaos pour simuler des scénarios de stress à l'intérieur des conteneurs. Ce document explique comment créer des expériences StressChaos et préparer le fichier de configuration correspondant.

Vous pouvez créer des expériences via Chaos Dashboard ou en utilisant des fichiers de configuration YAML.

Créer des expériences avec Chaos Dashboard

  1. Ouvrez Chaos Dashboard, puis cliquez sur NOUVELLE EXPÉRIENCE pour créer une nouvelle expérience :

    Créer une expérience
    Créer une expérience

  2. Dans la section Choisir une cible, sélectionnez TEST DE STRESS et renseignez les informations de l'expérience. Pour les champs spécifiques, référez-vous à la [Description de configuration](#fields description).

    StressChaos Experiment
    StressChaos Experiment

  3. Complétez les informations de l'expérience, précisez son périmètre et la durée planifiée :

    Experiment Information
    Experiment Information

  4. Soumettez les informations de l'expérience.

Créer des expériences avec un fichier YAML

  1. Écrivez la configuration de l'expérience dans un fichier YAML. L'exemple suivant utilise memory-stress.yaml :

    apiVersion: chaos-mesh.org/v1alpha1
    kind: StressChaos
    metadata:
    name: memory-stress-example
    namespace: chaos-mesh
    spec:
    mode: one
    selector:
    labelSelectors:
    'app': 'app1'
    stressors:
    memory:
    workers: 4
    size: '256MB'

    Cette configuration créera un processus dans le conteneur ciblé qui allouera et manipulera continuellement de la mémoire, occupant jusqu'à 256 Mo.

  2. Après avoir préparé le fichier de configuration, utilisez kubectl pour créer l'expérience :

    kubectl apply -f memory-stress.yaml

Description des champs

Les champs du fichier de configuration YAML sont décrits dans le tableau suivant :

ParameterTypeDescriptionDefault valueRequiredExample
durationstringSpecifies the duration of the experiment.NoneYes30s
stressorsStressorsSpecifies the stress of CPU or memoryNoneNo
stressngStressorsstringSpecifies the stres-ng parameter to reach richer stress injectionNoneNo--clone 2
modestringSpecifies the mode of the experiment. The mode options include one (selecting a random Pod), all (selecting all eligible Pods), fixed (selecting a specified number of eligible Pods), fixed-percent (selecting a specified percentage of Pods from the eligible Pods), and random-max-percent (selecting the maximum percentage of Pods from the eligible Pods).NoneYesone
valuestringProvides a parameter for the mode configuration, depending on mode.For example, when mode is set to fixed-percent, value specifies the percentage of Pods.NoneNo1
containerNames[]stringSpecifies the name of the container into which the fault is injected.NoneNo["nginx"]
selectorstructSpecifies the target Pod. For details, refer to Define the Scope of Chaos Experiments.NoneYes

Stressors

ParameterTypeDescriptionDefault valueRequiredExample
memoryMemoryStressorSpecifies the memory stressNoneNo
cpuCPUStressorSpecifies the CPU stressNoneNo
MemoryStressor
ParameterTypeDescriptionDefault valueRequiredExample
workersintSpecifies the number of threads that apply memory stressNo1
sizestringSpecifies the memory size to be occupied or a percentage of the total memory size. The final sum of the occupied memory size is size.No256MB / 25%
timestringSpecifies the time to reach the memory size. The growth model is a linear model.No10min
oomScoreAdjintSpecifies the oom_score_adj of the stress process.No-1000
note

Pour éviter la charge CPU élevée induite par les opérations de lecture/écriture de stress-ng, Chaos Mesh utilise memStress pour simuler le stress mémoire. MemStress consomme effectivement la mémoire au lieu d'appliquer une pression de lecture/écriture.

CPUStressor
ParameterTypeDescriptionDefault valueRequiredExample
workersintSpecifies the number of threads that apply CPU stressYes1
loadintSpecifies the percentage of CPU occupied. 0 means that no additional CPU is added, and 100 refers to full load. The final sum of CPU load is workers * load.No50