How to Perform a Stress Test for a Pool in SynetoOS 4

Written By Sebastian Sime (Draft Writer)

Updated at January 13th, 2026

→ Applies to: SynetoOS 4.x

IMPORTANT
The following script targets two directories: /flash & /hybrid.
It creates 100 files simultaneously (each file will be 100MB) and it will write a total of 10GB per pool in one burst. Once finished, it logs the results in /tmp/dd_stress.log and deletes all the created files.

 

Step 1. Connect to SynetoOS appliance via SSH as admin

ssh admin@<your_ip_address_or_hostname>

 

Step 2. Change into Solaris shell (in case you're directed to an unsupported shell)

un sh

 

Step 3. Get root privileges

sudo su -

 

Step 4. Edit /tmp/heavy-dd-zfs.sh file

vi /tmp/heavy-dd-zfs.sh

IMPORTANT
Make sure to copy and paste the exact lines below.

#!/bin/bash

POOLS=("flash" "hybrid")
NUM_FILES=100
FILE_SIZE_MB=100   # Every file size in MB
BLOCK_SIZE=1M
BASE_DIR="/"
LOG="/tmp/dd_stress.log" # Log file location

echo "Starting stress test with dd - $(date)" > "$LOG"

for POOL in "${POOLS[@]}"; do
    TARGET_DIR="${BASE_DIR}${POOL}/dd-stress"
    mkdir -p "$TARGET_DIR"
    echo "▶️ Written on $POOL ($TARGET_DIR)" | tee -a "$LOG"

    for i in $(seq 1 $NUM_FILES); do
        FILE="$TARGET_DIR/file_$i.bin"
        dd if=/dev/urandom of="$FILE" bs=$BLOCK_SIZE count=$FILE_SIZE_MB > /dev/null 2>&1 &
    done

    # Wait for all the dd to finish
    wait
    echo "✅ Write completed on $POOL" | tee -a "$LOG"

    echo "🧹 Cleanup file on $POOL" | tee -a "$LOG"
    rm -f "$TARGET_DIR"/*.bin
    echo "✅ Cleanup completed on $POOL" | tee -a "$LOG"
done

echo "✔️ Stress test completed - $(date)" | tee -a "$LOG"

Save and EXIT

:wq

 

Step 5.  Give permissions to /tmp/heavy-dd-zfs.sh file

chmod +x /tmp/heavy-dd-zfs.sh

 

Step 6.  Run the script

/tmp/heavy-dd-zfs.sh

 

Step 7 (optional). Schedule script periodically

crontab -e

IMPORTANT
Make sure to add the line below as the last line in crontab file (replace <time> with how often to run in minutes, <path to script> with the path of the script and <path to log file> with the path to the log file)

*/<time> * * * * <path to script> >> <path to log file>

Example

*/5 * * * * /tmp/heavy-dd-zfs.sh >> /tmp/dd_stress.log

Save and Exit

Ctrl + X

 

Step 8 (optional). Delete the schedule

crontab -e

IMPORTANT
Make sure to delete the previously added line in crontab file or add “#” at the start of the line

EXAMPLE

# */5 * * * * /tmp/heavy-dd-zfs.sh >> /tmp/dd_stress.log

Save and Exit

Ctrl + X