stress

Utilize the Stress tool to simulate system load for testing purposes. Learn how to install and use stress and stress-ng for CPU, memory, and I/O stress testing.

Stress Tool - System Load Testing Utility

Stress Tool: Simulate System Load

The Stress tool is a command-line utility designed to intentionally overload a system, allowing developers and system administrators to perform stress testing and performance analysis. This tool is invaluable for understanding how a system behaves under heavy load, identifying potential bottlenecks, and ensuring stability.

Installation and Usage

Installing the 'stress' command

To install the basic stress command on Debian-based systems like Ubuntu, you can use the following command:

$ sudo apt install stress -y

Basic Usage of 'stress'

The stress command allows you to specify the number of CPU, I/O, and virtual memory workers, along with the duration of the test. Here's an example of how to simulate a combined load:

$ stress --cpu 8 --io 4 --vm 4 --vm-bytes 1024M --timeout 10s

This command will attempt to stress 8 CPU cores, 4 I/O operations, and 4 virtual memory instances, each using 1024MB of memory, for a duration of 10 seconds.

Advanced System Stress Testing with 'stress-ng'

For more comprehensive and advanced system stress testing, the stress-ng utility is recommended. It offers a wider range of stress tests and more granular control.

Installing 'stress-ng'

Install stress-ng using your package manager:

sudo apt install stress-ng -y

Simulating CPU Load with 'stress-ng'

Use stress-ng to simulate CPU load across multiple cores. You can adjust the --cpu parameter to match the number of CPU cores you wish to stress:

# This command will stress 4 CPU cores for 60 seconds.
stress-ng --cpu 4 --timeout 60s

Simulating Memory Load with 'stress-ng'

To simulate memory pressure, stress-ng can allocate virtual machines. This command will allocate two virtual machines, each consuming 1GB of memory, for 60 seconds:

# Adjust --vm and --vm-bytes to control memory stress.
stress-ng --vm 2 --vm-bytes 1G --timeout 60s

Simulating I/O Load with 'dd'

While stress-ng has I/O testing capabilities, the dd command is a common and effective way to simulate disk I/O load. The following command creates a 1GB test file and synchronizes it to disk, stressing the I/O subsystem:

# This command creates a 1GB test file and stresses disk I/O.
dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 conv=fdatasync

For more detailed information on system performance and load testing, consult resources like MDN Date Documentation or ISO 8601 Date and Time Format.