From a966ee6ddce20c43350e92e7aaacd9269a348a5b Mon Sep 17 00:00:00 2001 From: Thomas Dannenberg Date: Wed, 24 Sep 2025 12:18:51 +0000 Subject: [PATCH] Kapitel 13/Tutorial.md aktualisiert --- Kapitel 13/Tutorial.md | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/Kapitel 13/Tutorial.md b/Kapitel 13/Tutorial.md index e2cdaba..e0f1352 100644 --- a/Kapitel 13/Tutorial.md +++ b/Kapitel 13/Tutorial.md @@ -1598,3 +1598,47 @@ Credentials: SSH Clipper Command (Expression): `/srv/clipper/bin/create-subtitle "{{ $('Loop Over Items').item.json.data.id }}"` + +An dieser Stelle wären wir nun fertig mit dem Einrichtn von Clipper. Wir laden automatisch alle neuen VODs von Twitch herunter, die freigegeben wurden. Erkennen automatisch potentielle Clips, schneiden diese und speichern diese in unserem Langzeitspeicher. +Was aber wenn die Systemressourcen nicht ausreichend sind bzw. so gering sind, dass eine Verarbeitung die Last ins unermessliche steigern würde? +Um dieses Risiko zu mildern können wir ein kurzes Skript vorschalten, dass die Systemlast für 2 Minuten im Augebehält und erst dann die Verarbeitung startet. So können wir sicher sein, dass die Lasspizen abgefangen und eine maximale Auslastung nicht allzu lange anhält. +Wir fügen dafür eirekt zu Beginn des Loops einen Execute Command Node ein. +Diese füllen wir mit dem folgenden Code: + +```bash +bash -c ' +abbruch=0 +timeout=900 +ok=0 +step=2 # Sekunden +target=20 # Ziel: 120 Sekunden stabil +threshold=15 # = 1.5 × 10 (um Dezimalzahlen zu umgehen) + +while [ "$ok" -lt "$target" ]; do + raw_load=$(awk "{print \$1}" /proc/loadavg) + load=$(echo "$raw_load * 10" | awk "{printf \"%d\", \$1}") + + if [ "$abbruch" -ge "$timeout" ]; then + echo "[FAIL] Abbruch: Last war nicht stabil genug in $timeout Sekunden" + exit 1 + fi + + if [ "$load" -le "$threshold" ]; then + ok=$((ok + step)) + abbruch=$((abbruch + step)) + echo "[INFO] Last stabil für $ok Sekunden" + else + ok=0 + abbruch=$((abbruch + step)) + "[INFO] Last nicht stabil. Beginne von vorne" + fi + + sleep $step +done + +echo "[PASS] Last stabil für $ok Sekunden" +exit 0 +' +``` + +Natürlich verzögern wir jede Bearbeitung um mindestens zwei Minuten, aber wir verhinden so die Auslastung wenn wir sie nicht gebrauchen können. \ No newline at end of file