93 lines
2.3 KiB
Bash
Executable File
93 lines
2.3 KiB
Bash
Executable File
#!/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."
|
||
|