#!/usr/bin/env bash set -euo pipefail # Dauer des Tests (Default: 10 Minuten, Format z.B. „5m", „600") DURATION="${1:-10m}" # Verzeichnisse / Geräte für File‑IO DATA_DRIVE="${HOME}/test/sysbench" # bitte anpassen SYSTEM_DRIVE="/mnt/nextcloud/test/sysbench" # bitte anpassen CURRENT_DIR=$(pwd) # Größe und Einstellungen für sysbench-File‑IO FILE_TOTAL_SIZE="1G" FILE_NUM="4" TEST_MODE="rndrw" EXTRA_FLAGS="--file-extra-flags=direct" echo "== Vorbereitung: File‑IO Testdateien erstellen ==" echo "testmode=${TEST_MODE}" cd ${DATA_DRIVE} echo "preparing sysbench on ${DATA_DRIVE}" sysbench fileio \ --file-total-size=${FILE_TOTAL_SIZE} \ --file-num=${FILE_NUM} \ --file-test-mode=${TEST_MODE} \ ${EXTRA_FLAGS} \ prepare & cd ${SYSTEM_DRIVE} echo "preparing sysbench on ${SYSTEM_DRIVE}" sysbench fileio \ --file-total-size=${FILE_TOTAL_SIZE} \ --file-num=${FILE_NUM} \ --file-test-mode=${TEST_MODE} \ ${EXTRA_FLAGS} \ prepare wait echo "== Vorbereitung fertig, starte Stresstest für ${DURATION} ==" # CPU‑Stresstest echo "running stress-ng" stress-ng \ --cpu 8 \ --cpu-method all \ --verify \ --timeout ${DURATION} \ --metrics-brief \ > stress-ng.log & # File‑IO auf System-Laufwerk cd ${SYSTEM_DRIVE} echo "running sysbench on ${SYSTEM_DRIVE}" sysbench fileio \ --file-total-size=${FILE_TOTAL_SIZE} \ --file-num=${FILE_NUM} \ --file-test-mode=${TEST_MODE} \ ${EXTRA_FLAGS} \ --file-dir=${DATA_DRIVE} \ --time=10 run \ > sysbench-nvme.log & # File‑IO auf Daten-Laufwerk cd ${DATA_DRIVE} echo "running sysbench on ${DATA_DRIVE}" sysbench fileio \ --file-total-size=${FILE_TOTAL_SIZE} \ --file-num=${FILE_NUM} \ --file-test-mode=${TEST_MODE} \ ${EXTRA_FLAGS} \ --file-dir=${SYSTEM_DRIVE} \ --time=10 run \ > sysbench-sata.log & # Auf alle Hintergrund‐Jobs warten wait echo "== Stresstest abgeschlossen ==" echo "Ergebnisse:" echo " - CPU (stress-ng): see stress-ng.log" echo " - NVMe (sysbench): see sysbench-nvme.log" echo " - SATA (sysbench): see sysbench-sata.log" # Clean up File‑IO Testdateien echo "== Aufräumen: File‑IO Testdateien löschen ==" cd ${DATA_DRIVE} sysbench fileio ${EXTRA_FLAGS} cleanup cd ${SYSTEM_DRIVE} sysbench fileio ${EXTRA_FLAGS} cleanup cd ${CURRENT_DIR} echo "Fertig."