Johannes Truschnigg - SRE & DevOps


Zur Suche ▼Zum Archiv ▼

Eintrag von 2020-03-23

Lautloser und leistungsfähiger GNU/Linux-Desktop mit ECC-Speicher


Nach mehr als sechs Jahren war es kürzlich wieder soweit, und ich habe mir einen neuen Desktop-PC zusammengestellt. Die Zeichen der Zeit zeigen, zumindest für x86-kompatible Architekturen, klar in Richtung AMD Ryzen. Wenn man für so ein System das richtige Mainboard auswählt, kann man relativ kostengünstig ein energieeffizientes und trotzdem sehr leistungsfähiges Gesamtpaket samt Arbeitsspeicher mit ECC-Unterstützung schnüren.

Freilich sollte das nicht das einzige Kriterium bleiben, nach denen man einen PC zusammenstellt. Ich wollte für diese Iteration meines hauptsächlich genutzten Desktop-Systems eine Variante, die auf meinen Schreibtisch passt, und die auch eine USB-C-Schnittstelle an der Gehäusefront bietet. Trotzdem wollte ich bei der Geräuschkulisse keine faulen Kompromisse eingehen müssen - mein bisheriger Desktop (im Minitower-Format, wie er unter meinem Schreibtisch Platz gefunden hatte) war im tagtäglichen Betrieb unhörbar, und das wollte ich auch für seinen Nachfolger beibehalten. Im Endeffekt habe ich mich für eine Liste an Komponenten entschieden, die um die 750 Euro gekostet hat, und mir sicherlich auf Jahre hin ausreichend Leistung unter Erfüllung all meiner Wünsche und Anforderungen, sowie exzellenter GNU/Linux-Kompatibilität, bieten wird.

Die Auswahl mancher Komponenten möchte ich noch im Detail erläutern bzw. beleuchten, sowie einige hoffentlich sachdienliche Kommentare zum Einsatz der Hardware unter GNU/Linux festhalten.

CPU, Speicher, Mainboard

AMD ist seit 2017 und der Einführung der Zen-Architektur wieder konkurrenzfähig am CPU-Markt - derzeit sogar federführend. Die Kombination aus einer Zen 2-CPU sowie einem Board mit B450-Chipset (der durch den BIOS- bzw. Boardhersteller nicht seiner grundsätzlichen Unterstützung von ECC beschnitten wurde, was leider nur bei einigen wenigen Herstellern der Fall ist) erlaubt ein extrem leistungsfähiges und dabei - den richtigen CPU-Kühler vorausgesetzt - geräuscharmes System. Neuere AMD-Chipsets schneiden hier schlechter ab, weil sie durch kleine und schnelldrehende Lüfter aktiv gekühlt sind. Der wegfallende (offizielle) Support von PCIe 4.0 ist im Austausch dafür allemal verkraftbar. In Sachen Hauptspeicher ist die Auswahl an DDR4 UDIMM mit ECC nicht überwältigend, weswegen ich mit passenden und gut verfügbaren Kingston-Modulen das Auslangen finden muss und werde. Aufgrund der geringeren Taktfrequenz gegenüber kunterbuntem Gaming-Speicher lasse ich wohl ein paar Prozent Gesamtperformance liegen - aber das gute Gefühl, dass mein Speicher sicherlich fehlerfrei arbeitet, wiegt das für mich persönlich mehr als auf. ECC mit Zen 2 funktioniert ab Linux 5.4 wie erwartet; die UE- und CE-Counts sind wie auf anderen Architekturen auch übersichtlich im sysfs zu finden, bzw. über die edac-utils abrufbar:

$ edac-util -v
mc0: 0 Uncorrected Errors with no DIMM info
mc0: 0 Corrected Errors with no DIMM info
mc0: csrow0: 0 Uncorrected Errors
mc0: csrow0: mc#0csrow#0channel#0: 0 Corrected Errors
mc0: csrow0: mc#0csrow#0channel#1: 0 Corrected Errors
edac-util: No errors to report.

Da das von mir gewählte Gehäuse nur Mainboards im ITX-Formfaktor fassen kann, war ich bei der Wahl der infragekommenden Modelle stark eingeschränkt - konnte aber im ASRock Fatal1ty B450 Gaming-ITX/ac ein passendes Modell finden. Dieses Board ist etwas teurer als Konkurrenzmodelle und bietet einigen Schnickschnack, den ich weder brauche noch als wirklichen Vorteil begreife (das integrierte Intel 3168-Wifi+BT-Modul z. B. müsste ich nicht haben), aber die Liste der infragekommenden Alternativen ist sehr kurz. Im Endeffekt habe ich dem Kernel verboten, den Treiber für die WLAN-Hardware zu laden (das Device kann man unverständlicherweise nicht per UEFI-Setup deaktivieren), und das aktuelleste UEFI-ROM eingespielt, um einen reibungslosen Betrieb unter archlinux zu erreichen:

$ cat /etc/modprobe.d/blacklist.conf 
# Disable onboard WiFi module
blacklist mac80211
blacklist iwlwifi

Der für mich nützliche Bluetooth-Support funktioniert auch dann, wenn man den WLAN-Teil des Kombio-Modul so stillegt - die Antennen muss man allerdings auch dann montiert haben, sonst reicht die Sendeleistung nur wenige Zentimeter weit. Es gibt mit Linux 5.5 leider noch keinen Treiber für die PWM-basierte Steuerung der Lüfter im System, was durch den exzellenten Support für die Feineinstellung der Regelung im UEFI-Setup aber in der Praxis nicht so stark ins Gewicht fällt. Etwas lästig ist es freilich, dass man das passende Lüfterdrehzahlprofil nur im bunten UEFI-Setup finden und einstellen kann, anstatt z. B. via fancontrol. Ansonsten arbeitet alles, was das Mainboard an Features bietet, unauffällig. Suspend to RAM funktioniert, sowie das Aufwachen aus diesem Zustand, absolut zuverlässig, und auch mein umschaltbarer USB-Hub, an dem meine Eingabegeräte hängen, macht hier keine Probleme - was beim Vorgängersystem lästigerweise nicht der Fall war, und ab und an die Komplettabschaltung des PCs erforderlich gemacht hat. Ich kann das Board also für den Betrieb unter GNU/Linux, zumindest mit dem bei mir geflashten BIOS-Release P3.70 (2019-11-18), vorbehaltlos empfehlen.

Gehäuse und Kühlung, Netzteil

Das Raijintek Metis Evo-Gehäuse im ungewöhnlichen, aber angenehm schreibtischtauglichen Beinahe-Würfel-Formfaktor ist ziemlich teuer, gefällt mir dafür auch tatsächlich. Der Komfort beim Einbau der Komponenten ist akzeptabel - mit einem ausgewachsenen Tower ärgert man sich aber natürlich weniger. Wer die Wahl hat, sollte ein Netzteil mit modularen Kabeln einsetzen, da dies viel Wirrwarr im Inneren sparen helfen kann. Sehr praktisch finde ich die beiden Front-Anschlüsse mit jeweils einer USB-A- und einer USB-C-Buchse mit SuperSpeed-Support, die bei meinem Exemplar auch elektrisch zuverlässig funktionieren. Deutlich weniger begeistert bin ich von der Verarbeitung des Korpus - die Außenhaut bzw. Hülle des Gehäuses passt nicht zu 100% auf das Innenleben des Chassis, was einiges an Kraftaufwand beim Verschrauben notwendig macht, und die filigranen Schrauben könnten gerne widerstandsfähiger schwarz eloxiert sein. Das ist für ein fast 150 Euro Straßenpreis eigentlich eine ziemlich peinliche Vorstellung.

Aber wo Schatten ist, gibt es auch Licht: Die Möglichkeit, das ganze System durch einen 200mm-Lüfter hoher Qualität zu kühlen, habe ich dankbar in Anspruch genommen. Ich habe hier bewusst nicht am falschen Ende gespart, und auf die meinem Empfinden nach eigentlich überzogen teuren Komponenten von Noctua gesetzt. Zuerst habe ich es mit Kühllösungen von Arctic Cooling, mit denen ich in der Vergangenheit schon oft sehr zufrieden war, versucht - musste dann aber augfrund minimal, aber doch nervig schleifender Lager umdisponieren. Mit der gegenwärtigen Konfiguration ist der kleine Würfel im Desktop-Betrieb akustisch nicht wahrnehmbar. Setzt man die zwölf Ryzen-Cores/Threads unter Stress, ändert sich das natürlich für eine Zeit lang; richtig störend wird die Geräuschkulisse aber eigentlich nie.

Beim Netzteil musste ich aufgrund der positiven Erfahrung mit dem zum Anschaffungszeitpunkt sehr teuren, dafür völlig passiv ausgelegten SilverStone NightJar mit absolut ausreichenden 400W Nennleistung nichts Neues kaufen. Vergleichbare Netzteile kosten immer noch über 100 Euro, für das System sind aber auch (per beiliegender Blende ebenfalls in das Gehäuse passende) SFX-Netzteile mit 250W Nennleistung mehr als ausreichend dimensioniert. Hier kann man also ggf. kostengünstige Komponenten einsetzen, wenn das Betriebsgeräusch entsprechend zurückhaltend ausfällt.

Grafikkarte

Mein bis dato verwendetes Intel-System bot eine für meine Zwecke ausreichend leistungsfähige, integrierte Grafikeinheit. Mit dieser Zielsetzung ist es ziemlich einfach, in Sachen Leistung adäquaten Ersatz in Form einer steckbaren PCIe-Karte zu finden. Am liebsten wäre mir eine passiv gekühle Grafiklösung von AMD gewesen, die AMD FreeSync unterstützt. Leider gibt es offenbar bis zum heutigen Tag keine Grafikkarte am Markt, die diese beiden Kriterien erfüllt, was mich zu einer Sapphire Pulse Radeon RX 550 mit etwas abgespeckten 2GB VRAM greifen ließ. Sapphire hat einen guten Ruf, was die Laufruhe der verwendeten Belüftungslösungen angeht, und die RX 550-Generation übererfüllt all meine Wünsche an Features einer GPU. Zudem wird das Modell mit einem "Zero-Fan"-Betriebsmodus - also semipassiver Kühlung, die nur bei Bedarf anspringt - beworben.

Diese Aussichten erwiesen sich als zu rosig, um auch wahr zu sein: Der amdgpu-Treiber ermöglicht zwar die Beeinflussung vieler Betriebsparameter der GPU und regelt z. B. auch die Taktraten von GPU und VRAM dynamisch nach Auslastung - allerdings tut er das nicht im selben Umfang bzw. so rigoros wie der Windows-Treiber sich das zutraut, und der semi-passive Betrieb wird mit dem Linux-Kernel nicht gewährleistet. Man kann die Lüfterdrehzahlsteuerung auch manuell übernehmen und somit den Geräuschpegel gut mitgestalten, aber vom Kriterium "unhörbar" kann trotzdem keine Rede sein. Da der verwendete Kühlkörper ein wahres Fliegengewicht und nicht gerade vertrauenserweckend ist, ist ein "Mitschwimmen" im Gehäuseluftstrom, mit ausgestecktem GPU-Lüfter, nicht drin. Letztendlich habe ich den von Sapphire gelieferten Kühlkörper durch den eines Arctic Accelero L2 Plus ersetzt, dessen Lüfter ich aber abmontiert habe. Zusätzlich - das wäre nicht absolut notwendig, hat sich in meinen Tests aber nicht als Nachteil für meinen 1x-WQHD-Desktop-Betrieb herausgestellt - regle ich die GPU-Performance über ihrem erreichbaren Maximum ab, was die Temperaturen auf stets unter 60°C und den Stromverbrauch der Grafikkarte auf unter 8W (beides abermals via sysfs exponiert und z. B. via lm-sensors komfortabel auslesbar) festzurrt. Das erreicht man durch das Ausführen dieser Kommandos (ggf. nach jedem Suspend/Resume-Zyklus; bei mir regelt das ein periodischer systemd-timer):

echo manual > '/sys/class/drm/card0/device/power_dpm_force_performance_level'
echo "0 1 2" > '/sys/class/drm/card0/device/pp_dpm_sclk'
echo "0 1" > '/sys/class/drm/card0/device/pp_dpm_mclk'

NVME

Sehr zufrieden bin ich - zumindest bis dato - mit der konkreten Wahl des Massenspeichers im m.2-Format. Das Corsair-Modul mit knapp 240GB ließ sich seinen vorkonfigurierten NVME-Namespace anstandslos im 4KiB-Format formatieren, und tut seitdem anstandslos und mit bis zu rund 3GiB/s Durchsatz seinen unscheinbaren Dienst. Es ist wirklich angenehm, wie reibungslos man unter GNU/Linux heute mit NVME-Devices interagieren kann - eine wirklich gelungene Integration, am Server wie am Desktop. Ich hoffe lediglich, dass Corsair auch noch beginnen wird, allfällige Firmware-Updates via Linux Vendor Fimware Service zu verteilen - bis dato sind solche Aktualisierungen leider nur über ein Windows-Dienstprogramm vorgesehen.

Fazit

Summa summarum bin ich mit meinem neuen Desktop so zufrieden wie mit keinem anderen PC vor ihm. Wer sich überlegt, ein ähnliches System anzuschaffen, trifft meiner Ansicht nach eine gute Entscheidung.

Anhänge und vielleicht Nützliches

direkter Link ▲

© 2007-2019 Johannes Truschnigg | valid xhmtl & css