Zum Hauptinhalt springen
Version: 2.6.7

Stressszenarien simulieren

Inoffizielle Beta-Übersetzung

Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →

Einführung zu StressChaos

Chaos Mesh bietet StressChaos-Experimente, um Stressszenarien innerhalb von Containern zu simulieren. Dieses Dokument beschreibt, wie Sie StressChaos-Experimente erstellen und die entsprechende Konfigurationsdatei vorbereiten.

Sie können Experimente entweder über das Chaos Dashboard oder mittels YAML-Konfigurationsdateien erstellen.

Experimente mit Chaos Dashboard erstellen

  1. Öffnen Sie Chaos Dashboard und klicken Sie auf NEW EXPERIMENT, um ein neues Experiment zu erstellen:

    Create Experiment
    Create Experiment

  2. Wählen Sie im Bereich Choose a Target die Option STRESS TEST und füllen Sie die Versuchsinformationen aus. Details zu den Konfigurationsfeldern finden Sie in der Beschreibung unter [Konfigurationsbeschreibung](#fields description).

    StressChaos-Experiment
    StressChaos-Experiment

  3. Geben Sie die Versuchsinformationen ein, legen Sie den Anwendungsbereich fest und definieren Sie die geplante Laufzeit:

    Versuchsinformationen
    Versuchsinformationen

  4. Übermitteln Sie die Experimentinformationen.

Experimente mit YAML-Dateien erstellen

  1. Tragen Sie die Experimentkonfiguration in eine YAML-Konfigurationsdatei ein. Im folgenden Beispiel wird die Datei memory-stress.yaml verwendet:

    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'

    Diese Konfiguration erzeugt einen Prozess im ausgewählten Container, der kontinuierlich Speicher allokiert sowie Lese- und Schreibzugriffe durchführt und dabei bis zu 256 MB belegt.

  2. Führen Sie nach Vorbereitung der Konfigurationsdatei das Experiment mit kubectl aus:

    kubectl apply -f memory-stress.yaml

Feldbeschreibung

Die Felder der YAML-Konfigurationsdatei werden in folgender Tabelle erläutert:

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

Stressoren

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
Hinweis

Um hohe CPU-Last durch Lese-/Schreibdruck von stress-ng zu vermeiden, nutzt Chaos Mesh memStress zur Simulation von Speicherstress. Grund ist, dass memStress Speicherstress durch Verbrauch tatsächlichen Speichers simuliert statt durch Ausübung von Lese-/Schreibdruck auf den Speicher.

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