Simuler des scénarios de stress
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 item | Abbreviation | Description | Type | Value |
|---|---|---|---|---|
load | l | Specifies the percentage of CPU load per CPU worker. 0 means no CPU utilization, and 100 means full CPU utilization. | int | Range: 0 to 100; Default value: 10. |
workers | w | Specifies the number of workers used to create CPU stress. | int | Default value: 1. |
options | o | The extended parameter of stress-ng, usually not configured. | string | Default 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 item | Abbreviation | Description | Type | Value |
|---|---|---|---|---|
size | s | Specifies the size of memory per VM worker. | string | The 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. |
options | o | The extended parameter of stress-ng, usually not configured. | string | Default 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 :
-
Lancez Chaosd en mode service :
chaosd server --port 31767 -
Envoyez une requête HTTP
POSTau 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-configurationde 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.
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
| Parameter | Description | Type | Value |
|---|---|---|---|
action | Actions of the experiment | Set to "cpu" | |
load | Specifies the percentage of CPU load per CPU worker. 0 means no CPU utilization, and 100 means full CPU utilization. | int | Range: 0 to 100; Default value: 10 |
workers | Specifies the number of workers used to create CPU stress | int | Default value: 1 |
options | The extended parameter of stress-ng, usually not configured. | string | Default 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
| Parameter | Description | Type | Value |
|---|---|---|---|
action | Actions of the experiment | Set to "mem" | |
size | Specifies the size of memory per VM worker | string | the 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. |
options | The extended parameter of stress-ng, usually not configured. | string | Default 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"}