The Benign Workload Generator is a suite of tools designed to simulate various workloads on servers and systems. These tools can be used for stress testing, performance benchmarking, or simulating real-world usage scenarios.
-
pure.sh:- Simulates a specific HTTP workload by performing repeated
GET,POST, andPUTrequests to a given server. - Server details (IP, port, and URI) and the number of requests can be customized.
- Simulates a specific HTTP workload by performing repeated
-
scenario_combine.sh:- Simulates a more dynamic HTTP workload with randomized request types (
GET,POST,PUT) and adjustable concurrency limits. - Includes random pauses to simulate traffic patterns.
- Simulates a more dynamic HTTP workload with randomized request types (
main-pure-task.sh:- Executes a series of predefined stress-test scripts, each targeting a specific system component or operation:
hdd: Tests hard disk I/O operations.io: Simulates general input/output operations.vm: Tests virtual memory usage.matrix: Performs computational tasks like matrix calculations.forkandvfork: Stress-tests process creation.- Additional scripts for file locking, caching, socket operations, and more.
- Each script runs for a fixed duration (default: 120 seconds).
- Executes a series of predefined stress-test scripts, each targeting a specific system component or operation:
- The
pure-taskfolder contains specialized scripts that are executed bymain-pure-task.sh. Each script is focused on a specific workload category (e.g.,aio.sh,malloc.sh,timer.sh, etc.).
- Install
curlfor HTTP-based workloads. - Install
httperffor performance benchmarking (used in some scripts). - Ensure you have sufficient system resources for stress testing.
-
Server Workloads:
- Update server details in
pure.shandscenario_combine.sh(e.g., IP, port, URI). - Execute
pure.shorscenario_combine.shto start workload generation.
Example:
bash pure.sh 0 # Perform GET requests - Update server details in
-
System Workloads:
-
Navigate to the directory containing
main-pure-task.sh. -
Run the script:
bash main-pure-task.sh
-
Feel free to contribute by adding new workload scripts or improving the existing ones. Make sure to follow the coding guidelines provided in the project.
This project is licensed under the MIT License.