This guide provides step-by-step instructions for getting started with Zathras testing across different environments.
Before starting, ensure you have:
- Zathras installed on your controller system (see Installation)
- Familiarity with available test configurations (Zathras comes with 18+ pre-configured tests - see Test Config Files)
- Appropriate permissions and access to your target systems
Testing on bare metal systems requires direct SSH access to the target machines.
-
Set up SSH access
# Copy your SSH key to the target system ssh-copy-id user@target-system-hostname # Test SSH access (should not prompt for password) ssh user@target-system-hostname
-
Create a local config file
Create a file named
<hostname>.configin thelocal_configs/directory:# Example: local_configs/test-server.config storage: /dev/nvme0n1,/dev/nvme1n1 server_ips: 192.168.1.100 client_ips: 192.168.1.101For detailed information on local configuration files, see Bare Metal Configuration.
-
Add the system to known hosts
ssh-keyscan target-system-hostname >> ~/.ssh/known_hosts
-
Create a scenario file
Create a scenario file in your Zathras directory:
# Example: bare_metal_scenario global: results_prefix: bare_metal_test system_type: local systems: system1: tests: streams host_config: "test-server"
-
Run the test
./bin/burden --scenario bare_metal_scenario
Here's a complete example for running STREAM benchmark on a bare metal system:
global:
results_prefix: stream_benchmark
system_type: local
test_iter: 3
systems:
system1:
tests: streams
host_config: "production-server"
tuned_profiles: "throughput-performance"Zathras supports automated provisioning and testing on major cloud providers.
- AWS (Amazon Web Services)
- Azure (Microsoft Azure)
- GCP (Google Cloud Platform)
- Cloud credentials configured (AWS CLI, Azure CLI, or gcloud CLI)
- SSH key pair for accessing cloud instances
- Terraform installed (handled by Zathras installer)
-
Create a scenario file
# Example: aws_scenario global: ssh_key_file: /home/user/.ssh/aws-key terminate_cloud: 1 cloud_os_id: ami-0abcdef1234567890 os_vendor: rhel results_prefix: aws_linpack_test system_type: aws systems: system1: tests: linpack host_config: "m5.xlarge" java_version: java-8
-
Run the test
./bin/burden --scenario aws_scenario
# Example: azure_scenario
global:
ssh_key_file: /home/user/.ssh/azure-key
terminate_cloud: 1
cloud_os_id: /subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Compute/images/rhel-9
os_vendor: rhel
results_prefix: azure_fio_test
system_type: azure
systems:
system1:
tests: fio
host_config: "Standard_D4s_v3:Disks;number=2;size=1000;type=Premium_LRS"# Example: gcp_scenario
global:
ssh_key_file: /home/user/.ssh/gcp-key
terminate_cloud: 1
cloud_os_id: projects/rhel-cloud/global/images/family/rhel-9
os_vendor: rhel
results_prefix: gcp_uperf_test
system_type: gcp
systems:
system1:
tests: uperf
host_config: "n2-standard-4:Networks;number=1"You can test multiple systems simultaneously:
global:
ssh_key_file: /home/user/.ssh/aws-key
terminate_cloud: 1
cloud_os_id: ami-0abcdef1234567890
os_vendor: rhel
results_prefix: multi_system_test
system_type: aws
systems:
system1:
tests: streams
host_config: "m5.xlarge"
system2:
tests: fio
host_config: "m5.2xlarge:Disks;number=4;size=2000;type=gp3"
system3:
host_config: "SYS_BARRIER" # Wait for above tests to complete
system4:
tests: uperf
host_config: "m5.4xlarge:Networks;number=2"If your virtual machines are running on the same system as the Zathras controller:
- Follow the bare metal process - VMs are treated like any other SSH-accessible system
- Ensure VM networking allows SSH access from the controller
- Use VM hostnames or IP addresses in your local config files
For VMs hosted on external hypervisors:
- Set up network bridging to ensure Zathras can reach the VMs
- Configure port forwarding if necessary
- Use accessible IP addresses or hostnames in your configurations
# Example: vm_scenario
global:
results_prefix: vm_performance_test
system_type: local
systems:
vm1:
tests: coremark
host_config: "test-vm-1"
vm2:
tests: streams
host_config: "test-vm-2"global:
test_iter: 5 # Run each test 5 times
results_prefix: iteration_test
system_type: aws
# ... rest of configurationsystems:
system1:
tests: linpack
host_config: "m5.xlarge"
tuned_profiles: "throughput-performance,latency-performance"
tuned_reboot: 1 # Reboot between profile changesglobal:
upload_rpms: "/path/to/custom.rpm,/path/to/another.rpm"
# ... rest of configuration-
SSH connection failures
- Verify SSH key is properly configured
- Check network connectivity
- Ensure target system is accessible
-
Cloud provisioning failures
- Verify cloud credentials are configured
- Check quota limits in your cloud account
- Ensure specified AMI/image IDs are valid
-
Test execution failures
- Check test configuration files are properly set up
- Verify required packages can be installed
- Review Zathras logs for specific error messages
- Check the command line reference for detailed option descriptions
- Review scenario file documentation for advanced configurations
- Examine test configuration files for test-specific settings
After completing your first test runs:
- Review results in the generated results directories
- Customize test parameters using test-specific configurations
- Set up automated testing using scenario files
- Explore advanced features like multi-system testing and custom tuning profiles