Dies ist eine alte Version des Dokuments!
Optimierte LinuxVMs unter Proxmox VE
Du möchtest dich gerne für unsere Hilfe erkenntlich zeigen
. Gerne. Wir bedanken uns bei dir für deine Spende! 🙏
Zum frei verfügbaren Apt-Repository
GITLAB:
Verwendete Systeme:
Einleitung
In diesem HowTo zeige ich dir einige Möglichkeiten um eine LinuxVM auf Proxmox VE optimiert zu gestalten. Es gibt natürlich viele verschiede Einsatzszenarien. Wobei ich mit dieser, in diesem Beitrag verwendeten Konfiguration für die meisten Anwendungsfälle empfehlen kann. Im laufe dieses Beitrags werde ich auch die wichtigsten Optionen kurz behandeln.
Voraussetzungen
Neue LinuxVM erstellen
Tab: „General → Keine spezielle Konfiguration
Tab: „
OS“ → Guest
OS Type „Linux“ mit Version „6.x - 2.6 Kernel“
Tab: „System“:
Graphics card: „VirtIO-GPU“ → Je nach Linuxversion hat der Gast Probleme Bootmeldungen anzuzeigen. Dabei werden nur unleserliche Dinge auf der noVNC Konsole angezeigt. Der wechsel zu „VirtIO-GPU“ löst dies. Da wir in spätere Folge dieses Artikel ohnehin die serielle Konsole als Default verwenden möchten, ist dies optional.
Machine: q35 → Bringt neuere virtuelle Hardware mit.
Das BIOS konfigurieren wir auf UEFI → Secureboot ist nur in Sonderfällen notwendig. In unserem Beispiel verzichten wir auf UEFI und deaktivieren „Pre-Enroll keys“.
Qemu Agent aktivieren wir selbstverständlich. Features und Vorteile darüber findest du auf [2].
Tab: „Disks“:
Bus/Device: SCSI → Dies ist der Default, hat unter normalen Umständen die beste Leistung und die meisten Features.
Discard aktivieren [3] → Das macht natürlich nur Sinn wenn dein verwendeter Storagespeicher auch Thin Provisioning unterstützt [4]. Wenn Discard aktiviert ist und das Gastbetriebssystem TRIM unterstützt, leitet der Controller diese Information an den Speicher weiter, sobald das Dateisystem der VM nach dem Löschen von Dateien Blöcke als ungenutzt markiert. Der Speicher verkleinert daraufhin das Disk-Image entsprechend. Damit der Gast TRIM-Befehle ausgeben kann, musst du die Option Discard auf dem Laufwerk aktivieren. Ubuntu macht dies automatisch in Zyklen. Solltest du Live-Discard verwenden wollen, kannst diese Option in der /etc/fstab im Gast bei dem gewünschten Laufwerk hinzfügen [5].
SSD emulation → Aktivieren sofern deine physische Storage SSDs oder NVMEs verwendet [3].
Eine Änderung der Cache und Async IO Konfiguration kann in bestimmten Fällen von Vorteil sein [6], [7].
Tab: „CPU“: Hier ist es natürlich ganz individuell wie viel Leistung zu benötigst und wie sich das auf die verfügbaren CPU-Sockets verteilen soll. Grundsätzlich verwende ich immer die Socketanzahl die mir zur Verfügung steht. Ab 2 Sockets aktiviere ich auch gleich mal NUMA [8]. Als CPUtype verwende ich in Linux grundsätzlich „host“ da man unter Linux (in Gegenzsatz zu Microsoft Windows) so gut wie immer die Beste Performance erziehlt. Aufpassen musst du natürlich wenn du einen Cluster betreibst und die VM Online zwischen verschieden physischen CPUtypen migrieren möchtest. Sollte dies der Fall sein, verwende bitte eine generische Variante wie z.B. x86-64-v2-AES.
Tab: „Memory“: Auch wieder individuell → Default OK.
Tab: „Network“: Auch wieder individuell → Solltest du ein 10 Gbit Netzwerk betreiben, wirst du die Option „Multiqueue“ [9] interessant finden.
Links