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."
 | ||
| 
 |