Files
ansible-tutorial/roles/initnextcloud/files/scripts/fullstress

93 lines
2.3 KiB
Bash
Executable File
Raw 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 FileIO
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-FileIO
FILE_TOTAL_SIZE="1G"
FILE_NUM="4"
TEST_MODE="rndrw"
EXTRA_FLAGS="--file-extra-flags=direct"
echo "== Vorbereitung: FileIO 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} =="
# CPUStresstest
echo "running stress-ng"
stress-ng \
--cpu 8 \
--cpu-method all \
--verify \
--timeout ${DURATION} \
--metrics-brief \
> stress-ng.log &
# FileIO 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 &
# FileIO 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 HintergrundJobs 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 FileIO Testdateien
echo "== Aufräumen: FileIO Testdateien löschen =="
cd ${DATA_DRIVE}
sysbench fileio ${EXTRA_FLAGS} cleanup
cd ${SYSTEM_DRIVE}
sysbench fileio ${EXTRA_FLAGS} cleanup
cd ${CURRENT_DIR}
echo "Fertig."