aurelien@aschnoebelen.fr:~/blog $

aurelien@aschnoebelen.fr: ~ $ cat ./articles/simuler-des-incidents-sous-linux/

· 2 min de lecture · #debian #mémo · dir: Sysadmin

Simuler des incidents sous Linux

Mémo de commandes sous Linux et Windows pour simuler des incidents de saturation (disque, RAM, CPU, réseau).

Dans ce mémo nous allons voir quelques commandes permettant de simuler des incidents sur un système Linux. Je présenterai mes commandes sous une machine Debian, mais avec quelques recherches et adaptations vous parviendrez sûrement à adapter cela à votre OS (Red Hat, Fedora, Arch Linux…).

Cet article est un mémo listant les commandes utiles pour ce sujet. Il sera amené à évoluer en fonction de mes besoins.

À utiliser avec précautions.

Sous Linux

Saturer l’espace disque

fallocate -l 50G bigfile
  • -l : Spécifier la taille du fichier à générer
  • 50G : Pour avoir un fichier de 50Go
  • bigfile : Le nom du fichier que je génère

Si cela ne fonctionne pas, fous pouvez toujours utiliser dd (plus long) :

dd if=/dev/zero of=bigfile bs=1M count=50000 status=progress

Saturer la RAM, le CPU ou le buffer IO du disque dur

La commande présentée ci-après en exemple permet de saturer le CPU, la mémoire et le buffer IO du disque dur. Vous pouvez adapter la commande en choisissant et en adaptant les paramètres que vous souhaitez utiliser.

stress-ng --vm 1 --vm-bytes 1024M --vm-hang 0 --cpu 2 --hdd 2 --hdd-bytes 1G
  • –vm N : Nombre de processus N pour stresser la RAM
  • –vm-bytes B : malloc B octets par processus (G pour GO, M pour MO, etc.)
  • –vm-hang N : sleep N secondes avant de nettoyer la mémoire (0 = infini)
  • –cpu N : Nombre de processus N pour stresser les processeurs (2 pour remplir 2 processeurs par exemple)
  • –hdd N : Nombre de processus N pour saturer le disque dur
  • –hdd-bytes B : écrit B octets par processus (G pour GO, M pour MO, etc.)

Cf. man pour une info plus détaillée.

Saturer le réseau

Impose un délai de 500ms avant chaque réponse TCP

tc qdisc add dev <interface> root netem delay 500ms

Supprime le délais imposé précédemment :

tc qdisc delete dev <interface> root

Pour trouver <interface>, cherchez la carté réseau utilisée avec la commande ip a

Bonus : sous Windows

Créer des fichiers de toute taille

$size=1GB 
fsutil file createNew dummy.txt $size

Avec :

  • $size=XX : la taille du fichier à générer (par exemple 1G, 50G, 1T, etc.)
  • dummy.txt : le nom du fichier à générer. Adaptez-le au besoin.

Ressources utiles