Chaos Faults for Linux
Introduction
Linux faults disrupt the resources running on a Linux machine. This deteriorates the performance of the application for the duration of the chaos experiment.
Resource consumption
The infrastructure consumes minimal system resources in an idle state, when no experiment is being executed. For example, in a GCP e2-micro VM instance with 2 vCPU and 1 GB of memory that runs Ubuntu 22.04 operating system, the average resource consumption was found to be as follows:
- CPU usage: 0.05%
- Memory usage: 1.5%
- Disk storage consumption: 25 MB
- Bandwidth consumption: 0.15 KB/s
Fault compatibility matrix
The faults have been tested for compatibility in the following Linux OS distributions:
Stress faults (cpu, memory, disk IO) | Network faults (loss, latency, corruption, duplication) | DNS faults (error, spoof) | Process faults (process kill, service restart) | Time chaos | Disk fill | |
---|---|---|---|---|---|---|
Ubuntu 16+ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Debian 10+ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
CentOS 7+ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
RHEL 7+ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Fedora 30+ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
openSUSE LEAP 15.4+ / SUSE Linux Enterprise 15+ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Linux CPU stress
Linux CPU stress stresses the CPU of the target Linux machines for a specific duration.
Linux memory stress
Linux memory stress causes memory consumption of the target Linux machines for a specific duration.
Linux disk IO stress
Linux disk I/O Stress fault stresses the disk of the target Linux machines over IO operations for a certain duration.
Linux network loss
Linux network loss injects chaos to disrupt network connectivity on Linux machine by blocking the network requests.
Linux network latency
Linux network latency injects chaos to disrupt network connectivity on the Linux machine by adding delay to the network requests.
Linux network corruption
Linux network corruption injects chaos to disrupt network connectivity on Linux machine by corrupting the network requests.
Linux CPU stress
Linux CPU stress applies stress on the CPU of the target Linux machines for a certain duration.
- Induces CPU stress on the target Linux machines.
- Simulates a lack of CPU for processes running on the application, which degrades their performance.
Use cases
Linux memory stress
Linux memory stress causes memory consumption of the target Linux machines for a specific duration.
Use cases
Linux disk IO stress
Linux disk I/O stress applies stress on the disk of the target Linux machines over I/O operations for a specific duration.
Use cases
Linux network loss
Linux network loss injects chaos to disrupt network connectivity on the Linux machine by blocking the network requests.
Use cases
Linux network latency
Linux network latency injects chaos to disrupt network connectivity on a Linux machine by adding delay to the network requests.
Use cases
Linux network duplication
Linux network duplication injects chaos to disrupt network connectivity on a Linux machine by duplicating network packets.
Use cases
Linux network corruption
Linux network corruption injects chaos to disrupt network connectivity on a Linux machine by corrupting the network requests.
Use cases
Linux DNS error
Linux DNS error injects chaos to disrupt the DNS resolution on a Linux machine.
Use cases
Linux DNS spoof
Linux DNS spoof injects chaos to mimic DNS resolution on a Linux machine.
Use cases
Linux process kill
Linux process kill fault kills the target processes running on the Linux machines.
- It checks the performance of the application or process running on the Linux machine.
Use cases
Linux service restart
Linux service restart stops the target system services running in a Linux machine.
- It determines the performance and resilience of the application (or services) running on Linux machines.
Use cases
Linux time chaos
Linux time chaos injects chaos to change the time of the Linux machine.