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
instanziiert 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 erzwungen beendet werden sollen.
avoid-regexp
(Vorgabe: #f
)Ein regulärer Ausdruck (als eine Zeichenkette), der auf die Namen jener Prozesse passt, die nicht erzwungen beendet 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 Befehl fstrim
können Sie unbenutzte Blöcke über einen
TRIM-Steuerbefehl auf einem eingebundenen Dateisystem freigeben.
Warnung: Wenn Sie
fstrim
zu häufig ausführen oder gar mitmount -o discard
einbinden, kann das die Lebensdauer von qualitativ schlechten SSD-Geräten beeinträchtigen. Auf den meisten Desktop- und Server-Systemen genügt es, TRIM-Befehle wöchentlich vorzunehmen. Beachten Sie, dass manche Geräte TRIM-Befehle nicht in eine Warteschlangenverarbeitung einreihen können, sondern jeder TRIM-Befehl gleichzeitige Zugriffe auf die Platte ausbremst.
Diensttyp, um regelmäßig fstrim
auszuführen. Als Wert muss ein
<fstrim-configuration>
-Objekt angegeben werden. So kann der Dienst
mit seiner Vorgabekonfiguration instanziiert werden:
Verfügbare fstrim-configuration
-Felder sind:
package
(Vorgabe: util-linux
) (Typ: dateiartig)Das Paket mit dem Befehl fstrim
.
schedule
(Vorgabe: "0 0 * * 0"
) (Typ: mcron-Zeitspezifikation)Zeitplan, wann fstrim
ausgeführt werden soll. Er kann als
Prozedur, als Liste von Zeichenketten oder als Zeichenkette angegeben
werden. Für weitere Informationen siehe das Job
specification in Handbuch von mcron. Vorgegeben ist, es wöchentlich
jeden Sonntag um 00:00 Uhr auszuführen.
listed-in
(Vorgabe: '("/etc/fstab" "/proc/self/mountinfo")
) (Typ: Vielleicht-Liste-von-Zeichenketten)Liste von Dateien im Format von fstab oder mountinfo. Alle fehlenden oder
leeren Dateien werden ohne Fehlermeldung ignoriert. Die Abarbeitung der
Liste bricht ab, sobald eine der Dateien nicht leer
ist. Dateisysteme mit der Einbinde-Option („mount option“)
X-fstrim.notrim
in fstab werden übersprungen.
verbose?
(Vorgabe: #t
) (Typ: Boolescher-Ausdruck)Mit ausführlichen Meldungen ausführen.
quiet-unsupported?
(Vorgabe: #t
) (Typ: Boolescher-Ausdruck)Keine Fehlermeldungen bringen, wenn die TRIM-Operation (ioctl) nicht unterstützt wird.
extra-arguments
(Typ: Vielleicht-Liste-von-Zeichenketten)Zusätzliche Befehlszeilenoptionen, die an fstrim
angehängt
werden. Führen Sie man fstrim
aus, um weitere Informationen zu
erhalten.
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)))
Der Cachefilesd-Dienst startet einen Daemon, mit dem Daten aus einem Netzwerkdateisystem lokal zwischengespeichert werden. Insbesondere bei über NFS und AFS freigegebenen Dateisystemen wird so die Latenz verringert, wenn wiederholt Lesezugriffe auf dieselbe Datei erfolgen.
Den Daemon können Sie wie folgt konfigurieren:
(service cachefilesd-service-type
(cachefilesd-configuration
(cache-directory "/var/cache/fscache")))
Dies ist der Diensttyp zum Starten von cachefilesd
. Der Wert
dieses Dienstes muss ein cachefilesd-configuration
-Objekt sein, für
das mindestens das cache-directory-Feld angegeben werden muss.
Verfügbare Felder einer cachefilesd-configuration
sind:
cachefilesd
(Vorgabe: cachefilesd
) (Typ: dateiartig)Das cachefilesd-Paket, das benutzt werden soll.
debug-output?
(Vorgabe: #f
) (Typ: Boolescher-Ausdruck)Informationen zur Fehlersuche auf stderr ausgeben.
use-syslog?
(Vorgabe: #t
) (Typ: Boolescher-Ausdruck)Ob Protokolle an die Syslog-Einrichtung statt an stdout gehen sollen.
scan?
(Vorgabe: #t
) (Typ: Boolescher-Ausdruck)Ob die cachebaren Objekte durchsucht werden sollen.
cache-directory
(Typ: Vielleicht-Zeichenkette)Der Ort für das Verzeichnis, um den Zwischenspeicher aufzubewahren.
cache-name
(Vorgabe: "CacheFiles"
) (Typ: Vielleicht-Zeichenkette)Name des Zwischenspeichers (etwas eindeutiges).
security-context
(Typ: Vielleicht-Zeichenkette)Der SELinux-Sicherheitskontext.
pause-culling-for-block-percentage
(Vorgabe: 7
) (Typ: Vielleicht-Nichtnegative-ganze-Zahl)Nicht weiter bereinigen, wenn dieser Prozentsatz verfügbarer Blöcke überschritten wird.
pause-culling-for-file-percentage
(Vorgabe: 7
) (Typ: Vielleicht-Nichtnegative-ganze-Zahl)Nicht weiter bereinigen, wenn dieser Prozentsatz verfügbarer Dateien überschritten wird.
resume-culling-for-block-percentage
(Vorgabe: 5
) (Typ: Vielleicht-Nichtnegative-ganze-Zahl)Anfangen zu bereinigen, wenn dieser Prozentsatz verfügbarer Blöcke unterschritten wird.
resume-culling-for-file-percentage
(Vorgabe: 5
) (Typ: Vielleicht-Nichtnegative-ganze-Zahl)Anfangen zu bereinigen, wenn dieser Prozentsatz verfügbarer Dateien unterschritten wird.
pause-caching-for-block-percentage
(Vorgabe: 1
) (Typ: Vielleicht-Nichtnegative-ganze-Zahl)Nicht weiter reservieren, wenn dieser Prozentsatz verfügbarer Blöcke unterschritten wird.
pause-caching-for-file-percentage
(Vorgabe: 1
) (Typ: Vielleicht-Nichtnegative-ganze-Zahl)Nicht weiter reservieren, wenn dieser Prozentsatz verfügbarer Dateien unterschritten wird.
log2-table-size
(Vorgabe: 12
) (Typ: Vielleicht-Nichtnegative-ganze-Zahl)Die Größe der Tabellen mit bereinigbaren Objekten als Logarithmus zur Basis 2.
cull?
(Vorgabe: #t
) (Typ: Boolescher-Ausdruck)Durch Bereinigen für freien Platz sorgen (erhöht die Systemauslastung).
trace-function-entry-in-kernel-module?
(Vorgabe: #f
) (Typ: Boolescher-Ausdruck)Das Betreten von Funktionen im Kernel-Modul verfolgen (zur Fehlersuche).
trace-function-exit-in-kernel-module?
(Vorgabe: #f
) (Typ: Boolescher-Ausdruck)Das Verlassen von Funktionen im Kernel-Modul verfolgen (zur Fehlersuche).
trace-internal-checkpoints-in-kernel-module?
(Vorgabe: #f
) (Typ: Boolescher-Ausdruck)Das Erreichen interner Checkpoints im Kernel-Modul verfolgen (zur Fehlersuche).
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]