Freigabe des reservierten Speichers auf VPS

Linux-Systeme reservieren standardmäßig Speicher für kdump. Dieser kann durch Anpassung der crashkernel-Parameter freigegeben werden.

Linux-Systeme reservieren standardmäßig Speicher für kdump. Die Größe dieses Speichers kann über den Parameter crashkernel eingestellt werden. Da viele Anwendungsentwickler normalerweise keinen Kernelabsturz auslösen, kann dieser Speicher durch Anpassung der Datei /etc/default/grub freigegeben werden.

Wenn kdump nicht benötigt wird, kann der Parameter crashkernel auf 0M-1G:0M,1G-4G:0M,4G-128G:0M,128G-:512M gesetzt werden, um Speicher freizugeben.

Anzeige: cat /etc/default/grub

Standardwert:

GRUB_CMDLINE_LINUX=" vga=792 console=tty0 console=ttyS0,115200n8 net.ifnames=0 noibrs nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295 iommu=pt crashkernel=0M-1G:0M,1G-4G:192M,4G-128G:384M,128G-:512M crash_kexec_post_notifiers=1"

Erklärung des crashkernel-Feldes: Hosts mit 0-1G RAM reservieren 0M Speicher, Hosts mit 1-4G RAM reservieren 192M Speicher, Hosts mit 4-128G RAM reservieren 384M Speicher, Hosts mit mehr als 128G RAM reservieren 512M Speicher.

Ein Host mit 1G RAM wird der Kategorie 1-4G zugeordnet und reserviert 192MB für kdump. Ein Host mit 4G RAM wird der Kategorie 4-128G zugeordnet und reserviert 384MB für kdump.

Änderung: sudo sed -i 's/crashkernel=0M-1G:0M,1G-4G:192M,4G-128G:384M,128G-:512M/crashkernel=0M-1G:0M,1G-4G:0M,4G-128G:0M,128G-:512M/' /etc/default/grub

Neustart erforderlich: sudo update-grub && sudo reboot

Beispiel für typische 2C1G-VPS für Anfänger: Vor und nach der Änderung zeigt sich ein deutlicher Unterschied zwischen 366MB und 562MB freiem Speicher.

# Vor der Änderung
root@iZj6c0otki9ho421eewyczZ:~# free
               total        used        free      shared  buff/cache   available
Mem:          707180      340772      123400        2624      358872      366408
Swap:              0           0           0

# Nach der Änderung
root@iZj6c0otki9ho421eewyczZ:~# free
               total        used        free      shared  buff/cache   available
Mem:          903788      341656      451380        2616      251032      562132
Swap:              0           0           0

Für 2C4G-VPS zeigt sich ein Unterschied zwischen 3.1GB und 3.5GB freiem Speicher.

# Vor der Änderung
root@iZj6c1prxn78ilvd2inku1Z:~# free
               total        used        free      shared  buff/cache   available
Mem:         3512696      377672     2870944        1260      415116     3135024
Swap:              0           0           0

# Nach der Änderung
root@iZj6c1prxn78ilvd2inku1Z:~# free
               total        used        free      shared  buff/cache   available
Mem:         3905912      374468     3408304        1252      270508     3531444
Swap:              0           0           0

Weitere Informationen zu kdump

Kdump ist ein Kernel-Crash-Dump-Mechanismus, der den Speicherzustand des Systems bei einem Linux-Kernel-Crash erfasst. Er basiert auf der kexec-Technologie, die es einem Linux-Kernel ermöglicht, einen anderen Linux-Kernel zu starten, ohne den BIOS-Initialisierungsprozess durchlaufen zu müssen. Dadurch kann das System nach einem Absturz schnell zu einem neuen Kernel (auch als Capture-Kernel oder crashkernel bezeichnet) gebootet werden.

Wenn das System auf einen schwerwiegenden Fehler stößt und einen Kernel-Panic auslöst, lädt der aktuell laufende Kernel (auch als Hauptkernel bezeichnet) mit kexec den vorbereiteten Capture-Kernel und speichert den Speicherinhalt an einem festgelegten Ort, wie z.B. einer bestimmten Partition auf der Festplatte oder über das Netzwerk auf einem anderen Rechner. Diese gespeicherte Speicherabbilddatei (vmcore oder kdump-Datei) kann für die spätere Analyse verwendet werden, um die Ursache des Absturzes zu ermitteln.

Um kdump zu aktivieren, muss normalerweise beim Systemstart ein Teil des Speichers für den Capture-Kernel reserviert werden, damit dieser auch bei einem Absturz des Hauptkernels unbeeinträchtigt arbeiten und die Speicherauszugsaufgabe abschließen kann. Die Konfiguration und Nutzung von kdump umfasst normalerweise die Anpassung der Bootloader-Einstellungen, die Justierung der Kernel-Parameter sowie die Festlegung eines geeigneten Speicherorts für die vmcore-Datei.