Bannière

Simuler des incidents sous Linux

  Le 14 novembre 2023     Aurélien Schnoebelen     #debian#mémo  

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.

A utiliser avec précautions.

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

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 --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élais de 500ms avant chaque réponse tcp

tc qdisc add dev enp0s3 root netem delay 500ms

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

tc qdisc delete dev enp0s3 root

Ressources utiles

  • https://www.baeldung.com/linux/network-failures-simulation