Nächste: Hurd-Dienste, Vorige: Guix-Dienste, Nach oben: Dienste [Inhalt][Index]
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.
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:
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.
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.
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)))
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.
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.
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.
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.
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.
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]