From fee40f5f469f4879dbcef4053fb39a1a6b75170e Mon Sep 17 00:00:00 2001 From: Kimrau Date: Fri, 14 Nov 2025 16:07:21 +0000 Subject: [PATCH] =?UTF-8?q?T=C3=A9l=C3=A9verser=20les=20fichiers=20vers=20?= =?UTF-8?q?"observabilite/observability/vm=5Fobservabilite=5Fhardware=5Fde?= =?UTF-8?q?sVMs/scripts"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scripts/stress.sh | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 observabilite/observability/vm_observabilite_hardware_desVMs/scripts/stress.sh diff --git a/observabilite/observability/vm_observabilite_hardware_desVMs/scripts/stress.sh b/observabilite/observability/vm_observabilite_hardware_desVMs/scripts/stress.sh new file mode 100644 index 0000000..34f3f3b --- /dev/null +++ b/observabilite/observability/vm_observabilite_hardware_desVMs/scripts/stress.sh @@ -0,0 +1,139 @@ +#!/usr/bin/env bash +# Script de stress "fort mais contrôlable" pour VM Linux +# - CPU : boucle infinie sur plusieurs cœurs +# - RAM : allocation d'un pourcentage de la RAM +# - DISK : gros fichier + lectures en boucle +# +# ⚠️ À adapter AVANT d'exécuter : les variables MEM_PRESSURE_PCT, DISK_FILE_SIZE_MB, etc. + +set -euo pipefail + +########## PARAMÈTRES À ADAPTER ########## +# Pourcentage de RAM à consommer (50 = 50%) +MEM_PRESSURE_PCT=60 + +# Nombre de workers CPU +# 0 = "autant que de vCPU" (nproc) +CPU_WORKERS=0 + +# Taille du fichier de stress disque (en MiB) +DISK_FILE_SIZE_MB=1024 # 1024 MiB ≈ 1 GiB + +# Répertoire temporaire utilisé pour le test disque +TEST_DIR=/tmp/vm_stress_test +########################################## + +pids=() + +cleanup() { + echo + echo "[*] Nettoyage en cours..." + # On essaie de tuer proprement tous les jobs de fond + for pid in "${pids[@]}"; do + if kill -0 "$pid" 2>/dev/null; then + kill "$pid" 2>/dev/null || true + fi + done + + # On attend un peu qu'ils se terminent + sleep 1 + for pid in "${pids[@]}"; do + if kill -0 "$pid" 2>/dev/null; then + kill -9 "$pid" 2>/dev/null || true + fi + done + + # On supprime les fichiers disque + rm -rf "$TEST_DIR" 2>/dev/null || true + + echo "[*] Nettoyage terminé. La charge devrait retomber dans quelques secondes." +} + +trap cleanup INT TERM EXIT + +mkdir -p "$TEST_DIR" + +echo "=== Infos de la VM ===" +if command -v nproc >/dev/null 2>&1; then + echo "CPU : $(nproc) vCPU détectés" +fi +if [ -r /proc/meminfo ]; then + mem_total_kb=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + echo "RAM totale : $((mem_total_kb / 1024)) MiB" +fi +echo + +########## STRESS CPU ########## +cpu_workers=${CPU_WORKERS:-0} +if [ "$cpu_workers" -le 0 ]; then + cpu_workers=$(nproc) +fi + +echo "[*] Lancement de $cpu_workers workers CPU…" +for ((i=0; i