Low Latency für die Musikproduktion
Da ich unter Linux Musik produziere gibt es hier und da Möglichkeiten, wie man das System etwas tunen kann. Eines der Dinge ist, dass man sich einen Low Latency Kernel installiert, wenn man an die Grenzen des Rechners stößt. Allerdings hat dieser dann eventuell so den einen oder anderen Nachteil, wenn man den Rechner noch für Alltagsarbeiten nutzt. Daher arbeite ich mit dem ganz normalen Kernel von Kubuntu 20.04 LTS der auch wunderbar seinen Dienst verrichtet.
Es gibt da aber dennoch die eine oder andere Kleinigkeit, die man machen kann, um das System zu optimieren. Quasi zu Fokussieren. Erik Rigtorp hat hier einen Low Latency Tuning Guide geschrieben, der ein paar sehr eigentlich selbstverständliche und ein paar interessante Vorschläge enthält.
Aktuell teste ich gerade recht zufriedenstellend, das Abschalten des Hyperthreadings.
Kurz gesagt: In meinem Rechner arbeitet ein Intel mit 4 CPU Cores, die virtuell jeweils nochmal aufgeteilt werden. In meinem System werden dadurch 8 CPUs angezeigt, die jeweils eigene Prozesse abarbeiten können. Das so eine Multiparallelität nicht immer von Vorteil ist, wenn man eine Sache benutzen möchte, kennt man ja schon aus der realen Welt, bzw auch von anderen Betriebsystemen.
Es gibt verschiedene Wege das Hyperthreading abzuschalten, ich habe mich im Moment für die Konsole entschieden und gegen das BIOS, so kann ich das immer recht spontan an und wieder ausschalten.
Daher habe ich mir folgendes kleines Script namens cpu_disable_hyperthreading.sh
angelegt, um den Parameter komfortabel umschalten zu können. Das Skript muss mit root Rechten bzw sudo ausgeführt werden !
#!/bin/bash
# Titel: Hyperthreading ausschalten
# Autor: hoergen
# Datum: 12.02.2021
#
# Zum Ausführen des Scriptes muss man root sein
#
# Quelle: https://rigtorp.se/low-latency-guide/
#
#
while [ -n "$1" ]; do
case "$1" in
-h) echo -e "\n\nOhne Parameter wird das Hyperthreading ausgeschaltet"
echo " und der aktuelle Status wird angezeigt"
echo " -h zeigt diese Hilfe an"
echo -e " -a aktiviert das Hyperthreading wieder.\n\n";;
-a) echo "\n\nSchalte Hyperthreading aus. Ausgeschaltet=0"
echo on > /sys/devices/system/cpu/smt/control;;
*) echo "\n\nOhne Parameter wird das Hyperthreading ausgeschaltet"
echo "Schalte Hyperthreading an. Angeschaltet=1"
echo off > /sys/devices/system/cpu/smt/control;;
esac
shift
done
# Disable Hyperthreading
#echo "Schalte Hyperthreading aus. Ausgeschaltet=0"
#echo off > /sys/devices/system/cpu/smt/control
hyperStatus=$(cat /sys/devices/system/cpu/smt/active)
echo -e "\n\nHyperthreading ist aus:0 / an:1 = $hyperStatus"
# Check if turbo boost is enabled enabled = 0
turboBoost=$(cat /sys/devices/system/cpu/intel_pstate/no_turbo)
echo -e "Turbo Boost ist an:0 / aus:1 = $turboBoost\n\n"
Hier nun das gesamte Paper: Low Latency tuninng guide by Eric Rigtorp (25.04.2020) https://rigtorp.se/low-latency-guide/
