Nahaufnahme einer Grafikkarte in einem NAS-Gehaeuse, Luefter, technische Detailaufnahme, keine Schrift im Bild
Homelab 5 Min Read

Ein Dienst, der still arbeitet, sieht aus wie einer, der still steht

In meinem NAS steckt eine Nvidia T400. Vier Gigabyte, halbe Bauhöhe, rund dreißig Watt. Sie macht genau einen Job: Videos umrechnen, damit sie auf allen Geräten laufen. Die Software, die…

Audio-Guide KI-generierter Beitrag zum Thema

In meinem NAS steckt eine Nvidia T400. Vier Gigabyte, halbe Bauhöhe, rund dreißig Watt. Sie macht genau einen Job: Videos umrechnen, damit sie auf allen Geräten laufen. Die Software, die sie dafür benutzt, habe ich einmal eingerichtet und seitdem nie wieder angefasst.

Und genau das ist das Problem.

Ende Juli hat diese Software nach einem Update aufgehört zu arbeiten. Nicht mit einem Fehler. Sie stand einfach. Gemerkt habe ich es Tage später, und zwar zufällig.

Denn eine Warteschlange, die nichts tut, weil nichts zu tun ist, sieht exakt so aus wie eine Warteschlange, die nichts tut, weil sie kaputt ist.

Die Idee

Wenn die Grafikkarte arbeitet, arbeitet die Software. Und wenn ich sehe, dass die Grafikkarte in den letzten Tagen nie über null Prozent war, obwohl neue Filme reingekommen sind, dann weiß ich Bescheid — ohne mich irgendwo anzumelden.

Also: Grafikkarten-Werte in meine Haussteuerung. Nicht als Spielerei, sondern als Lebenszeichen für eine Blackbox.

Zugegeben, ein Teil war auch schlichte Neugier. Ich wollte die Kachel sehen.

Vier Wege, die alle nicht funktionierten

Bevor ich beim Ergebnis lande, die Sackgassen — weil die mehr über solche Systeme verraten als die Lösung.

Werte direkt in der Haussteuerung auslesen. Naheliegend, es gibt dafür eine Standardfunktion. Scheitert daran, dass im Container der Haussteuerung kein Werkzeug zum Auslesen der Grafikkarte liegt. Und da gehört es auch nicht hin.

Ein Zeitplan direkt auf dem NAS. Scheitert an den Rechten. Ich habe mir dort bewusst nur das Nötigste an erweiterten Rechten eingerichtet, und das reicht dafür nicht. Diese Grenze wollte ich für eine Kachel nicht aufweichen.

Eine fertige Erweiterung. Gleiches Problem wie Weg eins.

Die Werte einfach hineinschieben. Funktioniert sogar — aber die so erzeugten Anzeigen sind flüchtig. Bei jedem Neustart der Haussteuerung sind sie weg, und man darf sein Dashboard neu bauen.

Der letzte Punkt ist der lehrreiche. Es gibt einen Unterschied zwischen „der Wert ist da” und „das Gerät ist bekannt”. Ich wollte ein Gerät, das sich anmeldet und danach dazugehört.

Was es geworden ist

Ein eigener kleiner Container auf dem NAS. Er liest alle dreißig Sekunden die Werte der Grafikkarte aus und schiebt sie über einen Nachrichtendienst weiter, den die Haussteuerung ohnehin versteht.

Das Entscheidende passiert einmalig beim ersten Start: Der Container meldet sich selbst an. Er beschreibt, welche Werte er liefert, wie sie heißen, in welchen Einheiten sie kommen und dass sie alle zu einem Gerät namens „NAS GPU” gehören. Diese Anmeldung wird gespeichert und überlebt jeden Neustart.

Danach acht Werte: Auslastung, Speicherbelegung, belegter Speicher, Temperatur, Lüfter, Encoder, Decoder, laufende Encoder-Sitzungen.

Eine Kleinigkeit, auf die ich besonders stolz bin: Jeder Wert hat eine Haltbarkeit von 120 Sekunden. Kommt zwei Minuten lang nichts, zeigt die Haussteuerung von selbst „nicht verfügbar” an, statt den letzten Wert für ewig einzufrieren. Damit merke ich auch, wenn nicht die Grafikkarte, sondern mein Messgerät ausfällt.

Wer Überwachung baut, sollte immer die Frage beantworten: Woran erkenne ich, dass die Überwachung selbst tot ist?

Die erste Messung unter Last

Auslastung        82 %
Encoder           39 %
Decoder           18 %
Sitzungen          1
Temperatur        69 °C
Lüfter            56 %
Speicher     928 von 4096 MiB

Das ist der Moment, für den ich es gebaut habe. Vorher wusste ich: „läuft wahrscheinlich”. Jetzt sehe ich, dass tatsächlich gerade ein Film umgerechnet wird, wie warm die Karte dabei wird und wie viel Luft noch nach oben ist.

Nebenbei ein korrigierter Irrtum: Ich hatte die Karte vorher einmal im Leerlauf gemessen und daraus geschlossen, sie langweile sich. Eine Momentaufnahme über eine Karte, die stundenweise arbeitet, sagt genau nichts.

Drei Stolpersteine, die alle gleich aussahen

Alle drei haben mit „Datei nicht gefunden” oder „keine Verbindung” um sich geworfen und hatten mit beidem nichts zu tun.

Der schlanke Grundcontainer konnte das Werkzeug nicht ausführen. Fehlermeldung: nvidia-smi: not found. Die Datei war aber da, ich konnte sie auflisten.

Der Grund ist eine Feinheit, die einen eine Stunde kosten kann: Schlanke Container-Grundlagen nutzen eine andere Systembibliothek als der Rest der Welt. Das Werkzeug erwartet die übliche. Was fehlt, ist nicht die Datei, sondern ihr Startprogramm. Das Betriebssystem sagt dazu trotzdem „nicht gefunden”.

Lösung: die größere, gewöhnliche Grundlage nehmen. Achtzig Megabyte mehr, dafür funktioniert es.

Der Bau des Containers hatte keine Namensauflösung. Das Herunterladen von Paketen scheiterte, obwohl das NAS problemlos Images aus dem Internet zieht. Der Bauvorgang läuft in einer eigenen Netzwerk-Umgebung, und die ist auf meinem NAS nicht sauber angebunden.

Lösung: dem Bauvorgang das Netzwerk des Hosts mitgeben. Und dann noch etwas Wichtiges — im Startrezept steht deshalb kein Bau-Schritt mehr. Sonst würde bei jedem Start neu gebaut und jedes Mal scheitern.

Der fertige Container erreichte den Nachrichtendienst nicht, obwohl der auf demselben Gerät lief. Zeitüberschreitung.

Lösung: auch hier das Netzwerk des Hosts benutzen und die Verbindung direkt lokal aufbauen, statt über die Adresse des NAS zu gehen.

Wenn man die drei nebeneinander legt, ist es dreimal dasselbe: Ein Container ist eine eigene kleine Welt, und drei verschiedene Grenzen dieser Welt haben sich als drei völlig verschiedene Fehler getarnt.

Warum ich zwei Überwachungen parallel habe

Ich lese dieselbe Grafikkarte auf zwei Wegen aus. Einmal für ein Dashboard, das dauerhaft auf einem Tablet läuft, und einmal für die Haussteuerung.

Das sieht nach Redundanz aus, ist aber Absicht. Das Tablet-Dashboard ist Betrieb: Server, Auslastung, Netzwerk, Verläufe über Wochen. Da will ich Kurven sehen und nichts anklicken.

Die Haussteuerung ist privat. Licht, Fernseher, Aquarium, Fußball — und eben eine Kachel für das NAS. Da will ich einen Blick, keine Kurve.

Zwei Zielgruppen, auch wenn es dieselbe Person ist.

Was ich mitnehme

Der eigentliche Gewinn war nicht die Kachel. Er war die Frage, die dahintersteht:

Welche meiner Dienste würde ich merken, wenn sie morgen aufhören zu arbeiten?

Bei den lauten ist die Antwort einfach. Mailserver aus, das merke ich in Stunden. Website weg, das merke ich sofort.

Aber alles, was leise im Hintergrund arbeitet — Umrechnungen, Backups, Aufräum-Läufe, Datenabgleiche — das kann monatelang stehen, ohne dass irgendwo etwas rot wird. Es passiert einfach nichts mehr, und nichts sieht aus wie Ruhe.

Für jeden dieser Dienste braucht man ein Lebenszeichen. Nicht „läuft der Prozess”, sondern „hat er in letzter Zeit tatsächlich etwas getan”.

Bei mir ist dieses Lebenszeichen jetzt eine Grafikkarte, die warm wird.