Ein in Zahlen ausgedrückter Wert hat immer etwas Abstraktes, das zu Interpretationsfehlern führen kann. Aber es gibt etwas viel Natürlicheres, wenn man eine Nadel beobachtet, die sich von einem Ende zum anderen bewegt. Mit diesem Gedanken beschloss Lex vom Kanal „Computing: The Details“, mehrere 5-mA-Amperemeter zu kaufen und sie mit einer ordentlichen Portion Arduino zu kombinieren, um einen CPU-Monitor zu bauen, der die Auslastung jedes verfügbaren Kerns, den Arbeitsspeicher und den Swap anzeigt.
Wir haben in der Vergangenheit alle möglichen Hardware-Monitore geteilt. Kürzlich sprachen wir über CPU Temp, das die Temperatur genau überwacht, aber auch Core Temp und HWiNFO sind einen Blick wert.
Das sind Software-Lösungen – ein Haufen Zahlen und Diagramme auf dem Bildschirm. Die Idee, physische Messgeräte zu verwenden, ist nicht gerade neu (tatsächlich haben einige Gehäusehersteller sie in älteren Designs verbaut, und ich erinnere mich an bestimmte Zubehörteile von Cooler Master), aber Lex vom Kanal „Computing: The Details“ entschied sich, mit einem DIY-Messgerät, das speziell für sein aktuelles System konfiguriert ist, darauf zurückzukommen.
Messen der CPU-Aktivität und der Speicherauslastung mit Amperemetern
Ein ungewöhnliches (oder eher unerwartetes) Detail ist, dass Lex den Code seines Messgeräts nicht veröffentlicht hat. Der Grund hat seine Logik: Lex glaubt, dass sein Werkzeug sehr spezifisch ist und nur seine Bedürfnisse abdeckt. Das könnte eine regelrechte Spirale von GitHub-Berichten auslösen, und ich kann mir vorstellen, dass er keine Kopfschmerzen will. Dennoch ist die allgemeine Beschreibung seines Projekts sehr nützlich und weist uns in die richtige Richtung.
Die Messgeräte sind einfache Amperemeter mit einem Maximalbereich von 5 mA und werden über einen 1-kOhm-Widerstand an die PWM-Punkte eines Arduino Mega angeschlossen. Die Messgeräte erhielten individuelle Skalen aus Inkscape, und ein LED-Streifen (ebenfalls am Arduino angeschlossen) bringt Farbe in die gesamte Konfiguration.
Auf der Softwareseite bestätigte Lex die Verwendung von Rust, um ein kleines Programm zu schreiben, das Daten von systemstat unter Linux erhält, sie umwandelt und über USB-Seriell an den Arduino sendet. Offenbar hat der Code ein paar Bugs (die Swap-Anzeige steht immer auf Maximum, und alle Messgeräte sind in Blender eingefroren), aber das sind kleinere Fehler. Ich persönlich hoffe, dass Lex seine Meinung ändert und den Code für eine einfachere Version mit drei Amperemetern teilt, die CPU allgemein, GPU und RAM misst.