Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]


12.9.34 Linux-Dienste

Early-OOM-Dienst

Early OOM, auch bekannt als Earlyoom, ist ein minimalistischer Out-Of-Memory-Daemon (OOM), um auf Anwendungsebene („User Space“) Programme abzuwürgen, wenn einem der freie Arbeitsspeicher ausgeht (ein „OOM-Killer“). Er stellt eine Alternative zum im Kernel eingebauten OOM-Killer dar, mit der das System in einem solchen Fall besser weiterhin auf Benutzereingaben reagieren kann und die konfigurierbarer ist.

Scheme-Variable: earlyoom-service-type

Der Diensttyp, um earlyoom, den Early-OOM-Daemon, auszuführen. Als Wert muss ein earlyoom-configuration-Objekt angegeben werden, wie unten beschrieben. So kann der Dienst mit seiner Vorgabekonfiguration instanziieret werden:

Datentyp: earlyoom-configuration

Dies ist das Verbundsobjekt mit der Konfiguration des earlyoom-service-type.

earlyoom (Vorgabe: earlyoom)

Das Earlyoom-Paket, das benutzt werden soll.

minimum-available-memory (Vorgabe: 10)

Der Schwellwert, wie viel Arbeitsspeicher mindestens verfügbar bleiben muss, in Prozent.

minimum-free-swap (Vorgabe: 10)

Der Schwellwert, wie viel Swap-Speicher mindestens frei bleiben muss, in Prozent.

prefer-regexp (Vorgabe: #f)

Ein regulärer Ausdruck (als eine Zeichenkette), der auf die Namen jener Prozesse passt, die als Erste abgewürgt werden sollen.

avoid-regexp (Vorgabe: #f)

Ein regulärer Ausdruck (als eine Zeichenkette), der auf die Namen jener Prozesse passt, die nicht abgewürgt werden sollen.<

memory-report-interval (Vorgabe: 0)

Das Intervall in Sekunden, in dem ein Bericht über den Speicher ausgegeben werden soll. Nach Vorgabe ist es deaktiviert.

ignore-positive-oom-score-adj? (Vorgabe: #f)

Ein boolescher Wert, der angibt, ob die in /proc/*/oom_score_adj festgelegten Anpassungen nach oben ignoriert werden sollen.

show-debug-messages? (Vorgabe: #f)

Ein boolescher Ausdruck, der angibt, ob Nachrichten zur Fehlersuche ausgegeben werden sollen. Die Protokolle werden unter /var/log/earlyoom.log gespeichert.

send-notification-command (Vorgabe: #f)

Hiermit kann ein eigener Befehl eingestellt werden, um Benachrichtigungen zu senden.

Kernelmodul-Ladedienst

Mit dem Kernelmodul-Ladedienst („Kernel Module Loader Service“) können Sie veranlassen, dass hinzuladbare Kernelmodule beim Systemstart geladen werden. Das bietet sich besonders für Module an, die nicht automatisch geladen werden („Autoload“), sondern manuell geladen werden müssen, wie es z.B. bei ddcci der Fall ist.

Scheme-Variable: kernel-module-loader-service-type

Der Diensttyp, um hinzuladbare Kernelmodule beim Systemstart über modprobe zu laden. Als Wert muss eine Liste von Zeichenketten angegeben werden, die den Modulnamen entsprechen. Um zum Beispiel die durch ddcci-driver-linux zur Verfügung gestellten Treiber zu laden und dabei durch Übergabe bestimmter Parameter den Modus zur Fehlersuche zu aktivieren, können Sie Folgendes benutzen:

(use-modules (gnu) (gnu services))
(use-package-modules linux)
(use-service-modules linux)

(define ddcci-config
  (plain-file "ddcci.conf"
              "options ddcci dyndbg delay=120"))

(operating-system
  
  (services (cons* (service kernel-module-loader-service-type
                            '("ddcci" "ddcci_backlight"))
                   (simple-service 'ddcci-config etc-service-type
                                   (list `("modprobe.d/ddcci.conf"
                                           ,ddcci-config)))
                   %base-services))
  (kernel-loadable-modules (list ddcci-driver-linux)))

Rasdaemon-Dienst

Mit dem Rasdaemon-Dienst steht Ihnen ein Daemon zur Verfügung, mit dem Trace-Ereignisse des Linux-Kernels bezüglich der Zuverlässigkeit (Reliability), Verfügbarkeit (Availability) und Wartbarkeit (Serviceability) der Plattform beobachtet werden. Sie werden in syslogd protokolliert.

Reliability, Availability, Serviceability ist ein Konzept auf Servern, um deren Robustheit zu messen.

Relability (Zuverlässigkeit) ist die Wahrscheinlichkeit, mit der ein System korrekte Ausgaben liefert:

Availability (Verfügbarkeit) ist die Wahrscheinlichkeit, dass ein System zu einem bestimmten Zeitpunkt betriebsbereit ist:

Serviceability (Wartbarkeit) bezeichnet, wie einfach und schnell ein System repariert und gepflegt werden kann:

Zu den beobachtbaren Messwerten gehören für gewöhnlich:

Durch das Beobachten, wie oft Fehler erkannt werden, kann bestimmt werden, ob die Wahrscheinlichkeit von Hardware-Fehlern zunimmt, und in diesem Fall kann ein vorsorglicher Austausch der schwächelnden Komponente vorgenommen werden, solange die Fehler leicht zu beheben sind.

Genaue Informationen über die Arten der gesammelten Fehlerereignisse und was sie bedeuten finden Sie in der Anleitung für Kernel-Administratoren unter https://www.kernel.org/doc/html/latest/admin-guide/ras.html.

Scheme-Variable: rasdaemon-service-type

Diensttyp für den rasdaemon-Dienst. Als Wert nimmt er ein rasdaemon-configuration-Objekt. Sie instanziieren ihn so:

Dadurch wird die Vorgabekonfiguration geladen, mit der alle Ereignisse beobachtet und mit syslogd protokolliert werden.

Datentyp: rasdaemon-configuration

Repräsentiert die Konfiguration von rasdaemon.

record? (Vorgabe: #f)

Ein Boolescher Ausdruck, der anzeigt, ob die Ereignisse in eine SQLite-Datenbank geschrieben werden. Dadurch wird ein strukturierterer Zugang zu den Informationen aus der Protokolldatei ermöglicht. Der Ort für die Datenbank ist fest einprogrammiert als /var/lib/rasdaemon/ras-mc_event.db.

Dienst für Zram-Geräte

Der Dienst für Zram-Geräte macht ein komprimiertes Swap-Gerät im Arbeitsspeicher verfügbar. Mehr Informationen finden Sie in der Linux-Kernel-Dokumentation über Zram-Geräte.

Scheme-Variable: zram-device-service-type

Dieser Dienst erzeugt das Zram-Blockgerät, formatiert es als Swap-Speicher und aktiviert es als ein Swap-Gerät. Der Wert des Dienstes ist ein zram-device-configuration-Verbundsobjekt.

Datentyp: zram-device-configuration

Dieser Datentyp repräsentiert die Konfiguration des zram-device-Dienstes.

size (Vorgabe: "1G")

Wie viel Speicher Sie für das Zram-Gerät verfügbar machen möchten. Angegeben werden kann eine Zeichenkette oder eine Zahl mit der Anzahl Bytes oder mit einem Suffix, z.B. "512M" oder 1024000.

compression-algorithm (Vorgabe: 'lzo)

Welchen Kompressionsalgorithmus Sie verwenden möchten. Alle Konfigurationsmöglichkeiten lassen sich hier nicht aufzählen, aber der Linux-Libre-Kernel von Guix unterstützt unter anderem die häufig benutzten 'lzo, 'lz4 und 'zstd.

memory-limit (Vorgabe: 0)

Wie viel Arbeitsspeicher dem Zram-Gerät höchstens zur Verfügung steht. Wenn es auf 0 steht, entfällt die Beschränkung. Obwohl im Allgemeinen von einem Kompressionsverhältnis von 2:1 ausgegangen wird, kann es passieren, dass nicht komprimierbare Daten den Swap-Speicher füllen. Mit diesem Feld kann das begrenzt werden. Es nimmt eine Zeichenkette oder eine Anzahl Bytes; ein Suffix kann angegeben werden, z.B. "2G".

priority (Vorgabe: #f)

Welche Priorität dem Swap-Gerät gegeben wird, das aus dem Zram-Gerät entsteht. Siehe Swap-Speicher für eine Beschreibung der Swap-Prioritäten. Es kann wichtig sein, für das Zram-Gerät eine bestimmte Priorität zuzuweisen, sonst bleibt es am Ende aus den dort beschriebenen Gründen praktisch ungenutzt.


Nächste: Hurd-Dienste, Vorige: Guix-Dienste, Nach oben: Dienste   [Inhalt][Index]