Files

93 lines
2.3 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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."