ShirKhan
PCGHX-HWbot-Member (m/w)
Noch ein Stabitest. Warum?
Weil Software-Kompilierung schnell und zuverlässig instabile Hardware-Settings aufdecken kann, die in gängigen Benchmarks und Stabilitätstests unentdeckt bleiben.
Wer so was noch nicht gemacht hat: kein Problem, dies ist eine Schritt-für-Schritt-Anleitung. Lediglich eine Linux-Installation wird vorausgesetzt.
Funktioniert der Test?
Ja, erste Ergebnisse sind vielversprechend. Bei zwei von vier CPUs dreier R.B.R.T.-Mitglieder erkannte er zuvor unbemerktes falsches Overclocking.
Was geschieht beim Kompilieren?
Quellcode wird in ausführbaren Maschinencode übersetzt. Der Vorgang ist rechenintensiv und erfolgt in maximaler Parallelisierung: Alle CPU-Kerne und -Threads werden genutzt, und zwar für reale Rechenaufgaben. Auch der Hauptspeicher wird stark beansprucht.
Warum unter Linux?
Zufall. Der Test entstand als Nebenprodukt während der Entwicklung eines gepatchten Linux-Kernels. Wiederholte Build-Abbrüche entlarvten eine zuvor unkritisch erscheinende CPU-Übertaktung als Fehlerquelle. Daraus entwickelte sich dieser reproduzierbare kleine Stabilitätstest.
Ist das gefährlich?
Die CPU-Auslastung liegt während der Kompilierung meist bei 100 %, die RAM-Belegung kann über 20 GiB steigen. Die dynamisch wechselnde Last führt tendenziell zu geringerer Leistungsaufnahme und etwas niedrigeren Temperaturen als bei synthetischen Stresstests – ist aber dennoch hoch.
Ersetzt der Test Cinebench, OCCT & Co.?
Er kann sie ergänzen. Offensichtlicher Unterschied: Statt unter synthetischer Dauerlast zu schwitzen, dürfen die Komponenten wirklichkeitsnahe, harte Arbeit bei minimaler Fehlertoleranz verrichten. Die Testdauer ist angenehm kurz.
Deckt der Test auch RAM-Instabilität auf?
Im Prinzip ja, denn auch der Speicher wird beim Kompilieren hart gefordert. Um dediziert auf den RAM zu zielen, sollte der Test aber angepasst werden, etwa auf maximale Speicherbelegung minus Systemreserven. Entsprechende Forschung steht noch aus.
Kann der Test als Benchmark genutzt werden?
Ja, auch wenn das weiterer Verifizierung durch eure Rückmeldungen bedarf. Nach erfolgreichem Abschluss des Builds zeigt die Konsole die benötigte Zeit an. Weniger ist besser.
Ja, erste Ergebnisse sind vielversprechend. Bei zwei von vier CPUs dreier R.B.R.T.-Mitglieder erkannte er zuvor unbemerktes falsches Overclocking.
Was geschieht beim Kompilieren?
Quellcode wird in ausführbaren Maschinencode übersetzt. Der Vorgang ist rechenintensiv und erfolgt in maximaler Parallelisierung: Alle CPU-Kerne und -Threads werden genutzt, und zwar für reale Rechenaufgaben. Auch der Hauptspeicher wird stark beansprucht.
Warum unter Linux?
Zufall. Der Test entstand als Nebenprodukt während der Entwicklung eines gepatchten Linux-Kernels. Wiederholte Build-Abbrüche entlarvten eine zuvor unkritisch erscheinende CPU-Übertaktung als Fehlerquelle. Daraus entwickelte sich dieser reproduzierbare kleine Stabilitätstest.
Ist das gefährlich?
Die CPU-Auslastung liegt während der Kompilierung meist bei 100 %, die RAM-Belegung kann über 20 GiB steigen. Die dynamisch wechselnde Last führt tendenziell zu geringerer Leistungsaufnahme und etwas niedrigeren Temperaturen als bei synthetischen Stresstests – ist aber dennoch hoch.
Ersetzt der Test Cinebench, OCCT & Co.?
Er kann sie ergänzen. Offensichtlicher Unterschied: Statt unter synthetischer Dauerlast zu schwitzen, dürfen die Komponenten wirklichkeitsnahe, harte Arbeit bei minimaler Fehlertoleranz verrichten. Die Testdauer ist angenehm kurz.
Deckt der Test auch RAM-Instabilität auf?
Im Prinzip ja, denn auch der Speicher wird beim Kompilieren hart gefordert. Um dediziert auf den RAM zu zielen, sollte der Test aber angepasst werden, etwa auf maximale Speicherbelegung minus Systemreserven. Entsprechende Forschung steht noch aus.
Kann der Test als Benchmark genutzt werden?
Ja, auch wenn das weiterer Verifizierung durch eure Rückmeldungen bedarf. Nach erfolgreichem Abschluss des Builds zeigt die Konsole die benötigte Zeit an. Weniger ist besser.
Hinweise
- Gesamtdauer des ersten Tests inklusive Vorbereitung und einmaligem Software-Download 30–60 Minuten, anschließende Netto-Testzeit je Durchlauf: fünf bis fünfzehn Minuten auf modernen Desktop-Systemen.
- Gebaut, jedoch nicht installiert wird die Software-Sammlung LLVM. Dafür wird einmalig die Kompilierungsumgebung sowie das LLVM-Git-Repository heruntergeladen, Download-Größe: bis zu 2,5 GiB. 15–20 GiB freier Speicherplatz sollten im Home-Verzeichnis zur Verfügung stehen, ggf. prüfen mit
df -h ~. - Die CPU-Last liegt während des Builds meist bei 100 %, die Speicherbelegung steigt auf 15 bis über 20 GiB. Ausreichende RAM-Ausstattung (32 GiB) wird vorausgesetzt.
Durchführung
1. Kompilierungsumgebung einrichten
(Nach Abschluss des Projekts kann das System in den ursprünglichen Zustand zurückversetzt werden. Hinweise dazu finden sich am Ende dieses How-Tos. Vor Testbeginn bereits vorhandene Pakete sollten nicht ohne Grund entfernt werden. Achtet bei Ausführung der folgenden Installationsbefehle deshalb darauf, welche Pakete tatsächlich neu sind und bei welchen lediglich eine Reinstallation angezeigt wird.)
a) Fedora (für die Testentwicklung eingesetzt), Nobara, Bazzite (im Toolbox-Container), RHEL
Bash:
sudo dnf install git
sudo dnf install cmake
sudo dnf install make
sudo dnf install gcc
sudo dnf install gcc-c++
sudo dnf install python3
b) Arch Linux, Manjaro, CachyOS, EndeavourOS, Garuda Linux
Bash:
sudo pacman -S git
sudo pacman -S cmake
sudo pacman -S make
sudo pacman -S gcc
sudo pacman -S python
c) Debian, Ubuntu, Linux Mint, elementary OS, KDE neon, Knoppix, MX Linux, Pop!_OS, Zorin OS
d) openSUSE (Leap, Tumbleweed)
e) Gentoo
Achtung: Nicht genannte Distros können andere Paketnamen und -manager verwenden. Benötigt werden:
Bash:
sudo apt install git
sudo apt install cmake
sudo apt install make
sudo apt install gcc
sudo apt install g++
sudo apt install python3
d) openSUSE (Leap, Tumbleweed)
Bash:
sudo zypper install git
sudo zypper install cmake
sudo zypper install make
sudo zypper install gcc
sudo zypper install gcc-c++
sudo zypper install python3
e) Gentoo
Bash:
sudo urpmi git
sudo emerge --ask dev-vcs/git
sudo emerge --ask dev-util/cmake
sudo emerge --ask sys-devel/make
sudo emerge --ask sys-devel/gcc
sudo emerge --ask dev-lang/python
Achtung: Nicht genannte Distros können andere Paketnamen und -manager verwenden. Benötigt werden:
git, cmake, make, gcc, g++ (oder ein anderer C++-Compiler), python32. LLVM-Quellen herunterladen (ca. 2,2 GB, nur einmal nötig), Build-Verzeichnis anlegen
Bash:
git clone https://github.com/llvm/llvm-project.git
cd llvm-project
mkdir build
cd build
3. Build-System vorbereiten
Bash:
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../llvm
4. Stresstest: Kompilierung starten (je nach System ca. 5–15 min)
Bash:
time make -j$(nproc) 2>/dev/null
Ein erfolgreicher Build endet mit 100 %. Die benötigte Kompilierungszeit wird nach Abschluss angezeigt. Somit ist der Test prinzipiell auch als vergleichender Benchmark geeignet. Soll die Testdauer nach erfolgreichem Abschluss verlängert werden, einfach erneut ausführen.
Erfolgreicher Test in 6:41 min
Ein kleinerer Wert als 100 % bedeutet, der Build wurde abgebrochen. Dies ist ein starker Hinweis auf Hardware-Instabilität. Fehlermeldungen werden durch den Befehlszusatz
2>/dev/null unterdrückt (im Build-Befehl oben enthalten). Ist das nicht gewünscht, bitte nur time make -j$(nproc) verwenden. Abbrüche erzeugen dann meist die Ausgabe „Fehler 2"/"Error 2“, die vermutete Ursache steht innerhalb der letzten 30 Zeilen.
Abbruch aufgrund Hardware-Instabilität (mit aktivierter Fehlerausgabe)
In seltenen, gravierenden Fällen friert das System statt eines Build-Abbruchs ein. Nach dem Reboot auf Meldungen zu initramfs (initial RAM file system) prüfen, nötigenfalls reparieren.
5. Aufräumen vor der Testwiederholung: alten LLVM-Build entfernen (Download bleibt erhalten)
Bash:
cd ~/llvm-project
rm -rf build
6. Ab dem zweiten Durchlauf können die Befehle kombiniert werden. Copy & Paste + [Enter] startet die Kompilierung sofort.
Bash:
cd ~/llvm-project
rm -rf build
mkdir build
cd build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../llvm
time make -j$(nproc) 2>/dev/null
Für mehrfache Testwiederholung genügt es, Schritt 6. zu wiederholen.
7. Nach Abschluss der Tests: vollständiges Aufräumen von Build und LLVM-Download
Bash:
cd ~
rm -rf ~/llvm-project
8. Nach Projektabschluss: auf Wunsch Kompilierungsumgebung entfernen
Soll das System nach Projektabschluss in den Ursprungszustand versetzt werden, können die unter 1. zusätzlich installierten Pakete wieder entfernt werden, sofern nicht interne Abhängigkeiten das verhindern. Tipp: Im Zweifel alles installiert lassen, der Platzbedarf ist gering. python/python3 bitte nicht entfernen!
a) Fedora, Nobara, Bazzite (im Toolbox-Container), RHEL
b) Arch Linux, Manjaro, CachyOS, EndeavourOS, Garuda Linux
c) Debian, Ubuntu, Linux Mint, elementary OS, KDE neon, Knoppix, MX Linux, Pop!_OS, Zorin OS
d) openSUSE (Leap, Tumbleweed)
e) Gentoo
Achtung: Nicht genannte Distros können andere Paketnamen und -manager verwenden. Zu entfernen, sofern gewünscht:
Bash:
sudo dnf remove git
sudo dnf remove cmake
sudo dnf remove make
sudo dnf remove gcc
sudo dnf remove gcc-c++
b) Arch Linux, Manjaro, CachyOS, EndeavourOS, Garuda Linux
Bash:
sudo pacman -Rs git
sudo pacman -Rs cmake
sudo pacman -Rs make
sudo pacman -Rs gcc
c) Debian, Ubuntu, Linux Mint, elementary OS, KDE neon, Knoppix, MX Linux, Pop!_OS, Zorin OS
Bash:
sudo apt remove git
sudo apt remove cmake
sudo apt remove make
sudo apt remove gcc
sudo apt remove g++
d) openSUSE (Leap, Tumbleweed)
Bash:
sudo zypper remove git
sudo zypper remove cmake
sudo zypper remove make
sudo zypper remove gcc
sudo zypper remove gcc-c++
e) Gentoo
Bash:
sudo emerge --ask --depclean dev-vcs/git
sudo emerge --ask --depclean dev-util/cmake
sudo emerge --ask --depclean sys-devel/make
sudo emerge --ask --depclean sys-devel/gcc
Achtung: Nicht genannte Distros können andere Paketnamen und -manager verwenden. Zu entfernen, sofern gewünscht:
git, cmake, make, gcc, g++ (oder ein anderer C++-Compiler). python/python3 bleibt installiert.Alles auf eigene Gefahr, versteht sich. Viel Spaß und Erfolg beim stabilen Übertakten!

V1.10 ShirKhan + KI 07.25
Zuletzt bearbeitet:


.gif)

