GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwalten von Ressourcen mit cgroups in systemd

Für mich als Systemadministrator gibt es kaum etwas Frustrierenderes, als unerwartet keine Rechenressource mehr zu haben. Bei mehr als einer Gelegenheit habe ich den gesamten verfügbaren Speicherplatz in einer Partition belegt, der Arbeitsspeicher ist erschöpft und ich hatte nicht genug CPU-Zeit, um meine Aufgaben in angemessener Zeit auszuführen. Die Ressourcenverwaltung ist eine der wichtigsten Aufgaben von Systemadministratoren.

Der Zweck der Ressourcenverwaltung besteht darin, sicherzustellen, dass alle Prozesse relativ gleichberechtigten Zugriff auf die von ihnen benötigten Systemressourcen haben. Zur Ressourcenverwaltung gehört auch, sicherzustellen, dass RAM, Festplattenspeicher und CPU-Kapazität bei Bedarf hinzugefügt oder rationiert werden, wenn dies nicht möglich ist. Darüber hinaus sollten Benutzer, die absichtlich oder versehentlich Systemressourcen in Anspruch nehmen, daran gehindert werden.

Es gibt Tools, mit denen Systemadministratoren verschiedene Systemressourcen überwachen und verwalten können. Mit Top- und ähnlichen Tools können Sie beispielsweise die Verwendung von Arbeitsspeicher, E/A, Speicher (Festplatte, SSD usw.), Netzwerk, Auslagerungsspeicher, CPU-Auslastung und mehr überwachen. Diese Tools, insbesondere diejenigen, die CPU-zentriert sind, basieren hauptsächlich auf dem Paradigma, dass der laufende Prozess die Einheit der Kontrolle ist. Bestenfalls bieten sie eine Möglichkeit, die nette Zahl – und damit die Priorität – anzupassen oder einen laufenden Prozess zu beenden. (Informationen zu netten Zahlen finden Sie unter Linux- und Windows-Hosts mit Glances überwachen .)

Mehr über Systemadministratoren

  • Sysadmin-Blog aktivieren
  • Das automatisierte Unternehmen:ein Leitfaden zur IT-Verwaltung mit Automatisierung
  • eBook:Ansible-Automatisierung für SysAdmins
  • Geschichten aus der Praxis:Ein Leitfaden für Systemadministratoren zur IT-Automatisierung
  • eBook:Ein Leitfaden zu Kubernetes für SREs und Systemadministratoren
  • Neueste Sysadmin-Artikel

Andere Tools, die auf herkömmlichem Ressourcenmanagement in einer SystemV-Umgebung basieren, werden von /etc/security/limits.conf verwaltet Datei und die lokalen Konfigurationsdateien in /etc/security/limits.d Verzeichnis. Ressourcen können auf ziemlich grobe, aber nützliche Weise durch Benutzer oder Gruppen begrenzt werden. Zu den Ressourcen, die verwaltet werden können, gehören verschiedene Aspekte des Arbeitsspeichers, die gesamte CPU-Zeit pro Tag, die Gesamtdatenmenge, die Priorität, die nette Zahl, die Anzahl gleichzeitiger Anmeldungen, die Anzahl der Prozesse, die maximale Dateigröße und mehr.

Cgroups für das Prozessmanagement verwenden

Ein wesentlicher Unterschied zwischen systemd und SystemV besteht darin, wie sie mit Prozessen umgehen. SystemV behandelt jeden Prozess als eigenständige Einheit. systemd sammelt verwandte Prozesse in Kontrollgruppen, genannt cgroups (kurz für Kontrollgruppen), und verwaltet Systemressourcen für die cgroup als Ganzes. Das bedeutet, dass Ressourcen pro Anwendung verwaltet werden können und nicht durch die einzelnen Prozesse, aus denen eine Anwendung besteht.

Die Steuereinheiten für Cgroups werden Slice-Einheiten genannt. Slices sind eine Konzeptualisierung, die es systemd ermöglicht, Prozesse zur einfacheren Verwaltung in einem Baumformat anzuordnen.

Kontrollgruppen anzeigen

Ich beginne mit einigen Befehlen, mit denen Sie verschiedene Arten von Informationen über cgroups anzeigen können. Der systemctl status <service> Der Befehl zeigt Slice-Informationen zu einem angegebenen Dienst an, einschließlich seines Slice. Dieses Beispiel zeigt den at Dämon:

[root@testvm1 ~]# systemctl status atd.service
● atd.service - Deferred execution scheduler
     Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-09-23 12:18:24 EDT; 1 day 3h ago
       Docs: man:atd(8)
   Main PID: 1010 (atd)
      Tasks: 1 (limit: 14760)
     Memory: 440.0K
        CPU: 5ms
     CGroup: /system.slice/atd.service
             └─1010 /usr/sbin/atd -f

Sep 23 12:18:24 testvm1.both.org systemd[1]: Started Deferred execution scheduler.
[root@testvm1 ~]#

Dies ist ein hervorragendes Beispiel für einen Grund, warum ich Systemd benutzerfreundlicher finde als SystemV und das alte Init-Programm. Hier gibt es so viel mehr Informationen, als SystemV bereitstellen könnte. Der Cgroup-Eintrag enthält die hierarchische Struktur, in der sich die system.slice befindet ist systemd (PID 1) und der atd.service ist eine Ebene darunter und Teil der system.slice . Die zweite Zeile des cgroup-Eintrags zeigt auch die Prozess-ID (PID) und den Befehl, der zum Starten des Daemons verwendet wird.

Die systemctl Der Befehl zeigt mehrere cgroup-Einträge an. Der --all Option zeigt alle Slices, einschließlich der gerade nicht aktiven:

[root@testvm1 ~]# systemctl -t slice --all
  UNIT                             LOAD   ACTIVE   SUB    DESCRIPTION                    
  -.slice                          loaded active   active Root Slice                      
  system-getty.slice               loaded active   active system-getty.slice              
  system-lvm2\x2dpvscan.slice      loaded active   active system-lvm2\x2dpvscan.slice    
  system-modprobe.slice            loaded active   active system-modprobe.slice          
  system-sshd\x2dkeygen.slice      loaded active   active system-sshd\x2dkeygen.slice    
  system-systemd\x2dcoredump.slice loaded inactive dead   system-systemd\x2dcoredump.slice
  system-systemd\x2dfsck.slice     loaded active   active system-systemd\x2dfsck.slice    
  system.slice                     loaded active   active System Slice                    
  user-0.slice                     loaded active   active User Slice of UID 0            
  user-1000.slice                  loaded active   active User Slice of UID 1000          
  user.slice                       loaded active   active User and Session Slice          

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

11 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.
[root@testvm1 ~]#

Das erste, was an diesen Daten auffällt, ist, dass sie Benutzer-Slices für die UIDs 0 (Root) und 1000 zeigen, was mein Benutzer-Login ist. Dies zeigt nur die Slices und nicht die Dienste, die Teil der einzelnen Slices sind. Diese Daten zeigen, dass für jeden Benutzer ein Slice erstellt wird, wenn er sich anmeldet. Dies kann eine Möglichkeit bieten, alle Aufgaben eines Benutzers als eine einzige cgroup-Entität zu verwalten.

Erkunden Sie die Cgroup-Hierarchie

Soweit ist alles schön und gut, aber Cgroups sind hierarchisch aufgebaut und alle Serviceeinheiten laufen als Mitglieder einer der Cgroups. Das Anzeigen dieser Hierarchie ist einfach und verwendet einen alten Befehl und einen neuen, der Teil von systemd ist.

Das ps Der Befehl kann verwendet werden, um die Prozesse und ihre Standorte in der cgroup-Hierarchie abzubilden. Beachten Sie, dass es notwendig ist, die gewünschten Datenspalten anzugeben, wenn Sie ps verwenden Befehl. Ich habe das Ausgabevolumen dieses Befehls unten erheblich reduziert, aber ich habe versucht, genug zu lassen, damit Sie ein Gefühl dafür bekommen, was Sie auf Ihren Systemen finden könnten:

[root@testvm1 ~]# ps xawf -eo pid,user,cgroup,args
    PID USER     CGROUP                      COMMAND
      2 root     -                           [kthreadd]
      3 root     -                            \_ [rcu_gp]
      4 root     -                            \_ [rcu_par_gp]
      6 root     -                            \_ [kworker/0:0H-kblockd]
      9 root     -                            \_ [mm_percpu_wq]
     10 root     -                            \_ [ksoftirqd/0]
     11 root     -                            \_ [rcu_sched]
     12 root     -                            \_ [migration/0]
     13 root     -                            \_ [cpuhp/0]
     14 root     -                            \_ [cpuhp/1]
<SNIP>
 625406 root     -                            \_ [kworker/3:0-ata_sff]
 625409 root     -                            \_ [kworker/u8:0-events_unbound]
      1 root     0::/init.scope              /usr/lib/systemd/systemd --switched-root --system --deserialize 30
    588 root     0::/system.slice/systemd-jo /usr/lib/systemd/systemd-journald
    599 root     0::/system.slice/systemd-ud /usr/lib/systemd/systemd-udevd
    741 root     0::/system.slice/auditd.ser /sbin/auditd
    743 root     0::/system.slice/auditd.ser  \_ /usr/sbin/sedispatch
    764 root     0::/system.slice/ModemManag /usr/sbin/ModemManager
    765 root     0::/system.slice/NetworkMan /usr/sbin/NetworkManager --no-daemon
    767 root     0::/system.slice/irqbalance /usr/sbin/irqbalance --foreground
    779 root     0::/system.slice/mcelog.ser /usr/sbin/mcelog --ignorenodev --daemon --foreground
    781 root     0::/system.slice/rngd.servi /sbin/rngd -f
    782 root     0::/system.slice/rsyslog.se /usr/sbin/rsyslogd -n
<SNIP>
    893 root     0::/system.slice/sshd.servi sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
   1130 root     0::/user.slice/user-0.slice  \_ sshd: root [priv]
   1147 root     0::/user.slice/user-0.slice  |   \_ sshd: root@pts/0
   1148 root     0::/user.slice/user-0.slice  |       \_ -bash
   1321 root     0::/user.slice/user-0.slice  |           \_ screen
   1322 root     0::/user.slice/user-0.slice  |               \_ SCREEN
   1323 root     0::/user.slice/user-0.slice  |                   \_ /bin/bash
 498801 root     0::/user.slice/user-0.slice  |                   |   \_ man systemd.resource-control
 498813 root     0::/user.slice/user-0.slice  |                   |       \_ less
   1351 root     0::/user.slice/user-0.slice  |                   \_ /bin/bash
 123293 root     0::/user.slice/user-0.slice  |                   |   \_ man systemd.slice
 123305 root     0::/user.slice/user-0.slice  |                   |       \_ less
   1380 root     0::/user.slice/user-0.slice  |                   \_ /bin/bash
 625412 root     0::/user.slice/user-0.slice  |                   |   \_ ps xawf -eo pid,user,cgroup,args
 625413 root     0::/user.slice/user-0.slice  |                   |   \_ less
 246795 root     0::/user.slice/user-0.slice  |                   \_ /bin/bash
 625338 root     0::/user.slice/user-0.slice  |                       \_ /usr/bin/mc -P /var/tmp/mc-root/mc.pwd.246795
 625340 root     0::/user.slice/user-0.slice  |                           \_ bash -rcfile .bashrc
   1218 root     0::/user.slice/user-1000.sl  \_ sshd: dboth [priv]
   1233 dboth    0::/user.slice/user-1000.sl      \_ sshd: dboth@pts/1
   1235 dboth    0::/user.slice/user-1000.sl          \_ -bash
<SNIP>
   1010 root     0::/system.slice/atd.servic /usr/sbin/atd -f
   1011 root     0::/system.slice/crond.serv /usr/sbin/crond -n
   1098 root     0::/system.slice/lxdm.servi /usr/sbin/lxdm-binary
   1106 root     0::/system.slice/lxdm.servi  \_ /usr/libexec/Xorg -background none :0 vt01 -nolisten tcp -novtswitch -auth /var/run/lxdm/lxdm-:0.auth
 370621 root     0::/user.slice/user-1000.sl  \_ /usr/libexec/lxdm-session
 370631 dboth    0::/user.slice/user-1000.sl      \_ xfce4-session
 370841 dboth    0::/user.slice/user-1000.sl          \_ /usr/bin/ssh-agent /bin/sh -c exec -l bash -c "/usr/bin/startxfce4"
 370911 dboth    0::/user.slice/user-1000.sl          \_ xfwm4 --display :0.0 --sm-client-id 2dead44ab-0b4d-4101-bca4-e6771f4a8ac2
 370930 dboth    0::/user.slice/user-1000.sl          \_ xfce4-panel --display :0.0 --sm-client-id 2ce38b8ef-86fd-4189-ace5-deec1d0e0952
 370942 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libsystray.so 6 23068680 systr
ay Notification Area Area where notification icons appear
 370943 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libpulseaudio-plugin.so 8 2306
8681 pulseaudio PulseAudio Plugin Adjust the audio volume of the PulseAudio sound system
 370944 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libxfce4powermanager.so 9 2306
8682 power-manager-plugin Power Manager Plugin Display the battery levels of your devices and control the brightness of your display
 370945 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libnotification-plugin.so 10 2
3068683 notification-plugin Notification Plugin Notification plugin for the Xfce panel
 370948 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libactions.so 14 23068684 acti
ons Action Buttons Log out, lock or other system actions
 370934 dboth    0::/user.slice/user-1000.sl          \_ Thunar --sm-client-id 2cfc809d8-4e1d-497a-a5c5-6e4fa509c3fb --daemon
 370939 dboth    0::/user.slice/user-1000.sl          \_ xfdesktop --display :0.0 --sm-client-id 299be0608-4dca-4055-b4d6-55ec6e73a324
 370962 dboth    0::/user.slice/user-1000.sl          \_ nm-applet
<SNIP>

Sie können die gesamte Hierarchie mit systemd-cgls anzeigen Befehl, der etwas einfacher ist, da er keine komplexen Optionen erfordert.

Diese Baumansicht habe ich stark verkürzt. auch, aber ich habe genug gelassen, um Ihnen eine Vorstellung von der Datenmenge sowie den Arten von Einträgen zu geben, die Sie sehen sollten, wenn Sie dies auf Ihrem System tun. Ich habe das auf einer meiner virtuellen Maschinen gemacht und es ist ungefähr 200 Zeilen lang; die Datenmenge meiner primären Workstation beträgt etwa 250 Zeilen:

[root@testvm1 ~]# systemd-cgls
Control group /:
-.slice
├─user.slice
│ ├─user-0.slice
│ │ ├─session-1.scope
│ │ │ ├─  1130 sshd: root [priv]
│ │ │ ├─  1147 sshd: root@pts/0
│ │ │ ├─  1148 -bash
│ │ │ ├─  1321 screen
│ │ │ ├─  1322 SCREEN
│ │ │ ├─  1323 /bin/bash
│ │ │ ├─  1351 /bin/bash
│ │ │ ├─  1380 /bin/bash
│ │ │ ├─123293 man systemd.slice
│ │ │ ├─123305 less
│ │ │ ├─246795 /bin/bash
│ │ │ ├─371371 man systemd-cgls
│ │ │ ├─371383 less
│ │ │ ├─371469 systemd-cgls
│ │ │ └─371470 less
│ │ └─[email protected]
│ │   ├─dbus-broker.service
│ │   │ ├─1170 /usr/bin/dbus-broker-launch --scope user
│ │   │ └─1171 dbus-broker --log 4 --controller 12 --machine-id 3bccd1140fca488187f8a1439c832f07 --max-bytes 100000000000000 --max-fds 25000000000000 --max->
│ │   ├─gvfs-daemon.service
│ │   │ └─1173 /usr/libexec/gvfsd
│ │   └─init.scope
│ │     ├─1137 /usr/lib/systemd/systemd --user
│ │     └─1138 (sd-pam)
│ └─user-1000.slice
│   ├─[email protected]
│   │ ├─dbus\x2d:1.2\x2dorg.xfce.Xfconf.slice
│   │ │ └─dbus-:[email protected]
│   │ │   └─370748 /usr/lib64/xfce4/xfconf/xfconfd
│   │ ├─dbus\x2d:1.2\x2dca.desrt.dconf.slice
│   │ │ └─dbus-:[email protected]
│   │ │   └─371262 /usr/libexec/dconf-service
│   │ ├─dbus-broker.service
│   │ │ ├─1260 /usr/bin/dbus-broker-launch --scope user
│   │ │ └─1261 dbus-broker --log 4 --controller 11 --machine-id
<SNIP>
│   │ └─gvfs-mtp-volume-monitor.service
│   │   └─370987 /usr/libexec/gvfs-mtp-volume-monitor
│   ├─session-3.scope
│   │ ├─1218 sshd: dboth [priv]
│   │ ├─1233 sshd: dboth@pts/1
│   │ └─1235 -bash
│   └─session-7.scope
│     ├─370621 /usr/libexec/lxdm-session
│     ├─370631 xfce4-session
│     ├─370805 /usr/bin/VBoxClient --clipboard
│     ├─370806 /usr/bin/VBoxClient --clipboard
│     ├─370817 /usr/bin/VBoxClient --seamless
│     ├─370818 /usr/bin/VBoxClient --seamless
│     ├─370824 /usr/bin/VBoxClient --draganddrop
│     ├─370825 /usr/bin/VBoxClient --draganddrop
│     ├─370841 /usr/bin/ssh-agent /bin/sh -c exec -l bash -c "/usr/bin/startxfce4"
│     ├─370910 /bin/gpg-agent --sh --daemon --write-env-file /home/dboth/.cache/gpg-agent-info
│     ├─370911 xfwm4 --display :0.0 --sm-client-id 2dead44ab-0b4d-4101-bca4-e6771f4a8ac2
│     ├─370923 xfsettingsd --display :0.0 --sm-client-id 261b4a437-3029-461c-9551-68c2c42f4fef
│     ├─370930 xfce4-panel --display :0.0 --sm-client-id 2ce38b8ef-86fd-4189-ace5-deec1d0e0952
│     ├─370934 Thunar --sm-client-id 2cfc809d8-4e1d-497a-a5c5-6e4fa509c3fb --daemon
│     ├─370939 xfdesktop --display :0.0 --sm-client-id 299be0608-4dca-4055-b4d6-55ec6e73a324
<SNIP>
└─system.slice
  ├─rngd.service
  │ └─1650 /sbin/rngd -f
  ├─irqbalance.service
  │ └─1631 /usr/sbin/irqbalance --foreground
  ├─fprintd.service
  │ └─303383 /usr/libexec/fprintd
  ├─systemd-udevd.service
  │ └─956 /usr/lib/systemd/systemd-udevd
<SNIP>
  ├─systemd-journald.service
  │ └─588 /usr/lib/systemd/systemd-journald
  ├─atd.service
  │ └─1010 /usr/sbin/atd -f
  ├─system-dbus\x2d:1.10\x2dorg.freedesktop.problems.slice
  │ └─dbus-:[email protected]
  │   └─371197 /usr/sbin/abrt-dbus -t133
  ├─sshd.service
  │ └─893 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
  ├─vboxservice.service
  │ └─802 /usr/sbin/VBoxService -f
  ├─crond.service
  │ └─1011 /usr/sbin/crond -n
  ├─NetworkManager.service
  │ └─765 /usr/sbin/NetworkManager --no-daemon
  ├─switcheroo-control.service
  │ └─787 /usr/libexec/switcheroo-control
 <SNIP>

Diese Baumansicht zeigt alle Benutzer- und System-Slices sowie die Dienste und Programme, die in jeder Kontrollgruppe ausgeführt werden. Beachten Sie die als „Bereiche“ bezeichneten Einheiten, die verwandte Programme in einer Verwaltungseinheit innerhalb von user-1000.slice gruppieren in der obigen Auflistung. Der user-1000.slice/session-7.scope cgroup enthält die GUI-Desktop-Programmhierarchie, beginnend mit der LXDM-Display-Manager-Sitzung und all ihren Unteraufgaben, einschließlich Dingen wie der Bash-Shell und dem Thunar-GUI-Dateimanager.

Bereichseinheiten sind nicht in Konfigurationsdateien definiert, sondern werden programmgesteuert als Ergebnis des Startens von Gruppen verwandter Programme generiert. Bereichseinheiten erstellen oder starten keine Prozesse, die als Teil dieser Kontrollgruppe ausgeführt werden. Alle Prozesse innerhalb des Bereichs sind gleich und es gibt keine interne Hierarchie. Die Lebensdauer eines Bereichs beginnt mit der Erstellung des ersten Prozesses und endet mit der Zerstörung des letzten Prozesses.

Öffnen Sie mehrere Fenster auf Ihrem Desktop, z. B. Terminalemulatoren, LibreOffice oder was auch immer Sie möchten, wechseln Sie dann zu einer verfügbaren virtuellen Konsole und starten Sie so etwas wie top oder Midnight Commander. Führen Sie systemd-cgls aus Befehl auf Ihrem Host, und notieren Sie sich die Gesamthierarchie und die Bereichseinheiten.

Die systemd-cgls Der Befehl bietet eine vollständigere Darstellung der Cgroup-Hierarchie (und Details der Einheiten, aus denen sie besteht) als jeder andere Befehl, den ich gefunden habe. Ich bevorzuge seine sauberere Darstellung des Baums als das ps Befehl bietet.

Mit ein wenig Hilfe von meinen Freunden

Nachdem ich diese Grundlagen behandelt hatte, hatte ich geplant, mehr ins Detail über cgroups und ihre Verwendung zu gehen, aber ich entdeckte eine Reihe von vier ausgezeichneten Artikeln von Steve Ovens von Red Hat auf der Schwesterseite Enable Sysadmin von Opensource.com. Anstatt Steves Artikel grundlegend neu zu schreiben, entschied ich, dass es viel besser wäre, seine Cgroup-Expertise zu nutzen, indem ich auf sie verlinke:

  1. Die Einführung eines Linux-Systemadministrators in cgroups
  2. Wie man cgroups mit CPUShares verwaltet
  3. Cgroups auf die harte Tour verwalten – manuell
  4. Cgroups mit systemd verwalten

Genieße sie und lerne von ihnen, so wie ich es getan habe.

Andere Ressourcen

Es gibt eine Menge Informationen über systemd im Internet, aber vieles ist knapp, stumpf oder sogar irreführend. Zusätzlich zu den in diesem Artikel erwähnten Ressourcen bieten die folgenden Webseiten detailliertere und zuverlässigere Informationen zum Systemstart. Diese Liste ist seit dem Beginn dieser Artikelserie gewachsen, um die von mir durchgeführte Forschung widerzuspiegeln.

  • Das Fedora-Projekt hat eine gute, praktische Anleitung zu systemd. Es enthält so ziemlich alles, was Sie wissen müssen, um einen Fedora-Computer mit systemd zu konfigurieren, zu verwalten und zu warten.
  • Das Fedora-Projekt hat auch einen guten Spickzettel, der die alten SystemV-Befehle mit vergleichbaren Systemd-Befehlen vergleicht.
  • Die Handbuchseite systemd.unit(5) enthält eine schöne Liste von Unit-Dateiabschnitten und ihren Konfigurationsoptionen zusammen mit kurzen Beschreibungen von jedem.
  • Die Red Hat Dokumentation enthält eine gute Beschreibung der Unit-Dateistruktur sowie andere wichtige Informationen.
  • Detaillierte technische Informationen über systemd und die Gründe für seine Erstellung finden Sie in der Beschreibung von systemd auf Freedesktop.org. Diese Seite ist eine der besten, die ich gefunden habe, da sie viele Links zu anderen wichtigen und genauen Dokumentationen enthält.
  • Linux.com's "More systemd fun" bietet weiterführende Informationen und Tipps zu systemd.
  • Siehe die Manpage für systemd.resource-control(5).
  • Im Benutzer- und Administratorhandbuch für den Linux-Kernel , siehe den Eintrag Control Group v2.

Es gibt auch eine Reihe von sehr technischen Artikeln für Linux-Systemadministratoren von Lennart Poettering, dem Designer und Hauptentwickler von systemd. Diese Artikel wurden zwischen April 2010 und September 2011 geschrieben, sind aber heute genauso aktuell wie damals. Vieles von allem anderen Guten, das über systemd und sein Ökosystem geschrieben wurde, basiert auf diesen Papieren.

  • Überdenken von PID 1
  • systemd für Administratoren, Teil I
  • systemd für Administratoren, Teil II
  • systemd für Administratoren, Teil III
  • systemd für Administratoren, Teil IV
  • systemd für Administratoren, Teil V
  • systemd für Administratoren, Teil VI
  • systemd für Administratoren, Teil VII
  • systemd für Administratoren, Teil VIII
  • systemd für Administratoren, Teil IX
  • systemd für Administratoren, Teil X
  • systemd für Administratoren, Teil XI

Linux
  1. Verwalten Sie Ihre angeschlossene Hardware unter Linux mit systemd-udevd

  2. Erstellen und Verwalten von Partitionen unter Linux mit parted

  3. Dieser Fehler über Upstart/systemd mit Runit?

  4. Systemd mit mehreren execStart

  5. Konfigurieren des Systemd-Dienstes für die Ausführung mit Root-Zugriff

So automatisieren Sie Ihre AWS-Ressourcen mit CloudFormation-Vorlagen

Entrümpeln des Prozessmanagements mit ps oder systemd

Verwalten von cgroups auf die harte Tour – manuell

So verwalten Sie cgroups mit CPUShares

Verwalten von cgroups mit systemd

Verwalten von Protokollen mit Logrotate auf Ubuntu