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


11.10.35 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.

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 instanziiert 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 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.

fstrim-Dienst

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 mit mount -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.

Variable: fstrim-service-type

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:

Datentyp: fstrim-configuration

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, mcron 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.

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.

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)))

Cachefilesd-Dienst

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")))
Variable: cachefilesd-service-type

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.

Datentyp: cachefilesd-configuration

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).

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.

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.

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]