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 →

Ce document explique comment utiliser Chaosd pour simuler des scénarios de stress. Cette fonctionnalité génère une charge CPU ou mémoire sur l'hôte en utilisant stress-ng. Vous pouvez créer des expériences de stress soit en mode ligne de commande soit en mode service.

Créer des expériences de stress en mode ligne de commande

Cette section décrit comment créer des expériences de stress en mode ligne de commande.

Avant de créer des expériences de stress, vous pouvez exécuter la commande suivante pour voir les types d'expériences pris en charge par Chaosd :

chaosd attack stress --help

Le résultat est le suivant :

Stress attack related commands

Usage:
chaosd attack stress [command]

Available Commands:
cpu continuously stress CPU out
mem continuously stress virtual memory out

Flags:
-h, --help help for stress

Global Flags:
--log-level string the log level of chaosd, the value can be 'debug', 'info', 'warn' and 'error'

Use "chaosd attack stress [command] --help" for more information about a command.

Actuellement, Chaosd permet de créer des expériences de stress CPU et de stress mémoire.

Simuler un stress CPU en mode ligne de commande

Commande pour simuler un stress CPU

Pour voir les éléments de configuration pris en charge par la simulation de stress CPU, exécutez la commande suivante :

chaosd attack stress cpu --help

Le résultat est le suivant :

continuously stress CPU out

Usage:
chaosd attack stress cpu [options] [flags]

Flags:
-h, --help help for cpu
-l, --load int Load specifies P percent loading per CPU worker. 0 is effectively a sleep (no load) and 100 is full loading. (default 10)
-o, --options strings extend stress-ng options.
-w, --workers int Workers specifies N workers to apply the stressor. (default 1)

Global Flags:
--log-level string the log level of chaosd, the value can be 'debug', 'info', 'warn' and 'error'

Description de la configuration pour simuler un stress CPU

Configuration itemAbbreviationDescriptionTypeValue
loadlSpecifies the percentage of CPU load per CPU worker. 0 means no CPU utilization, and 100 means full CPU utilization.intRange: 0 to 100; Default value: 10.
workerswSpecifies the number of workers used to create CPU stress.intDefault value: 1.
optionsoThe extended parameter of stress-ng, usually not configured.stringDefault value: "".

Exemple de simulation de stress CPU

chaosd attack stress cpu --workers 2 --load 10

Le résultat est le suivant :

[2021/05/12 03:38:33.698 +00:00] [INFO] [stress.go:66] ["stressors normalize"] [arguments=" --cpu 2 --cpu-load 10"]
[2021/05/12 03:38:33.702 +00:00] [INFO] [stress.go:82] ["Start stress-ng process successfully"] [command="/usr/bin/stress-ng --cpu 2 --cpu-load 10"] [Pid=27483]
Attack stress cpu successfully, uid: 4f33b2d4-aee6-43ca-9c43-0f12867e5c9c

Simuler un stress mémoire en mode ligne de commande

Commande pour simuler un stress mémoire

Pour voir les éléments de configuration pris en charge par la simulation de stress mémoire, exécutez la commande suivante :

chaosd attack stress mem --help

Le résultat est le suivant :

continuously stress virtual memory out

Usage:
chaosd attack stress mem [options] [flags]

Flags:
-h, --help help for mem
-o, --options strings extend stress-ng options.
-s, --size string Size specifies N bytes consumed per vm worker, default is the total available memory. One can specify the size as % of total available memory or in units of B, KB/KiB, MB/MiB, GB/GiB, TB/TiB..

Global Flags:
--log-level string the log level of chaosd, the value can be 'debug', 'info', 'warn' and 'error'

Description de la configuration pour simuler un stress mémoire

Configuration itemAbbreviationDescriptionTypeValue
sizesSpecifies the size of memory per VM worker.stringThe memory size in B, KB/KiB, MB/MiB, GB/GiB, TB/TiB. If the size is not set, all available memory is used by default.
optionsoThe extended parameter of stress-ng, usually not configured.stringDefault value: "".

Exemple de simulation de stress mémoire

chaosd attack stress mem --workers 2 --size 100M

Le résultat est le suivant :

[2021/05/12 03:37:19.643 +00:00] [INFO] [stress.go:66] ["stressors normalize"] [arguments=" --vm 2 --vm-keep --vm-bytes 100000000"]
[2021/05/12 03:37:19.654 +00:00] [INFO] [stress.go:82] ["Start stress-ng process successfully"] [command="/usr/bin/stress-ng --vm 2 --vm-keep --vm-bytes 100000000"] [Pid=26799]
Attack stress mem successfully, uid: c2bff2f5-3aac-4ace-b7a6-322946ae6f13

Lors de l'exécution de l'expérience, vous devez conserver l'information UID de l'expérience. Quand la simulation de stress n'est plus nécessaire, utilisez recover pour arrêter l'expérience associée à cet UID :

chaosd recover c2bff2f5-3aac-4ace-b7a6-322946ae6f13

Le résultat est le suivant :

Recover c2bff2f5-3aac-4ace-b7a6-322946ae6f13 successfully

Créer des expériences de stress en mode service

Pour créer des expériences en mode service, procédez comme suit :

  1. Lancez Chaosd en mode service :

    chaosd server --port 31767
  2. Envoyez une requête HTTP POST au chemin /api/attack/{uid} du service Chaosd :

    curl -X POST 172.16.112.130:31767/api/attack/jvm -H "Content-Type:application/json" -d '{fault-configuration}'

    Pour la partie fault-configuration de la commande ci-dessus, configurez-la selon le type de défaillance. Reportez-vous aux paramètres et exemples de chaque type de défaillance dans les sections suivantes.

note

Lors de l'exécution d'une expérience, pensez à conserver l'information UID. Pour arrêter l'expérience correspondant à cet UID, envoyez une requête HTTP DELETE au chemin /api/attack/{uid} du service Chaosd.

Simuler un stress CPU en mode service

Paramètres pour simuler un stress CPU

ParameterDescriptionTypeValue
actionActions of the experimentSet to "cpu"
loadSpecifies the percentage of CPU load per CPU worker. 0 means no CPU utilization, and 100 means full CPU utilization.intRange: 0 to 100; Default value: 10
workersSpecifies the number of workers used to create CPU stressintDefault value: 1
optionsThe extended parameter of stress-ng, usually not configured.stringDefault value: ""

Exemple de simulation de stress CPU en mode service

curl -X POST 172.16.112.130:31767/api/attack/stress -H "Content-Type:application/json" -d '{"load":10, "action":"cpu","workers":1}'

Le résultat est le suivant :

{"status":200,"message":"attack successfully","uid":"c3c519bf-819a-4a7b-97fb-e3d0814481fa"}

Simuler un stress mémoire en mode service

Paramètres pour simuler un stress mémoire

ParameterDescriptionTypeValue
actionActions of the experimentSet to "mem"
sizeSpecifies the size of memory per VM workerstringthe memory size in B, KB/KiB, MB/MiB, GB/GiB, TB/TiB. If the size is not set, all available memory is used by default.
optionsThe extended parameter of stress-ng, usually not configured.stringDefault value: ""

Exemple de simulation de stress mémoire en mode service

curl -X POST 172.16.112.130:31767/api/attack/stress -H "Content-Type:application/json" -d '{"size":"100M", "action":"mem"}'

Le résultat est le suivant :

{"status":200,"message":"attack successfully","uid":"a551206c-960d-4ac5-9056-518e512d4d0d"}