Systemd cgroups Verwendung von Drop-in-Dateien: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „ *Drop-in-Dateien für systemd sind ziemlich einfach einzurichten. *Erstellen Sie zunächst ein geeignetes Verzeichnis basierend auf dem Namen Ihres Dienstes…“)
 
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
 +
=Drop Files=
 +
Drop-in-Dateien für systemd sind ziemlich einfach einzurichten. Erstellen Sie zunächst ein geeignetes Verzeichnis basierend auf dem Namen Ihres Dienstes in /etc/systemd/system. Führen Sie im cat-Beispiel den folgenden Befehl aus:
  
*Drop-in-Dateien für systemd sind ziemlich einfach einzurichten.
+
*mkdir -p /etc/systemd/system/generate-load.service.d/
*Erstellen Sie zunächst ein geeignetes Verzeichnis basierend auf dem Namen Ihres Dienstes in /etc/systemd/system.
 
*Führen Sie im cat-Beispiel den folgenden Befehl aus:
 
* mkdir -p /etc/systemd/system/generate-load.service.d/
 
*Diese Dateien können beliebig organisiert werden.
 
*Sie werden basierend auf der numerischen Reihenfolge ausgeführt, daher sollten Sie Ihre Konfigurationsdateien etwa 10-CPUSettings.conf benennen.
 
*Alle Dateien in diesem Verzeichnis sollten die Dateierweiterung .conf haben und erfordern, dass Sie jedes Mal, wenn Sie eine dieser Dateien anpassen, systemctl daemon-reload ausführen.
 
  
*Ich habe zwei Drop-In-Dateien erstellt, um zu zeigen, wie Sie verschiedene Konfigurationen aufteilen können.  
+
Diese Dateien können beliebig organisiert werden. Sie werden basierend auf der numerischen Reihenfolge ausgeführt.
*Die erste ist 00-slice.conf. Wie unten zu sehen ist, richtet es die Standardoptionen für ein separates Slice für den cat-Dienst ein:
+
=Erstellen einer Dropin Konfiguration=
 +
*vi /etc/systemd/system/generate-load.service.d/01-limit.conf
 
  [Service]
 
  [Service]
 
  Slice=AWESOME.slice
 
  Slice=AWESOME.slice
  MemoryAccounting=yes
+
  MemoryMax=100M
  CPUAccounting=yes
+
  CPUQuota=30%
 
 
Die andere Datei legt die Anzahl der CPUShares fest und heißt 10-CPUSettings.conf.
 
[Service]
 
CPUShares=256
 
 
 
Um zu zeigen, dass diese Methode funktioniert, erstelle ich einen zweiten Dienst im selben Slice. Um die Prozesse besser voneinander unterscheiden zu können, ist das zweite Skript etwas anders:
 
 
 
!/bin/bash
 
/usr/bin/sha256sum /dev/urandom > /dev/null &
 
 
 
Ich habe dann einfach Kopien der cat-Dateien erstellt, das Skript ersetzt und den CPUShares-Wert geändert:
 
 
 
*sed 's/load\.sh/load2\.sh/g' cat.service > sha256sum.service
 
*cp -r cat.service.d sha256sum.service.d
 
*sed -i 's/256/2048/g' sha256sum.service.d/10-CPUSettings.conf
 
 
 
Laden Sie abschließend den Daemon neu und starten Sie die Dienste:
 
 
 
*systemctl daemon-reload
 
*systemctl startet cat.service
 
*systemctl startet sha256sum.service
 
 
 
Anstatt Ihnen die Ausgabe von top zu zeigen, ist jetzt ein guter Zeitpunkt, um Ihnen systemd-cgtop vorzustellen. Es funktioniert ähnlich wie das normale Top, außer dass es Ihnen eine Aufschlüsselung pro Slice und dann wieder nach Diensten in jedem Slice gibt. Dies ist sehr hilfreich, um festzustellen, ob Sie cgroups im Allgemeinen auf Ihrem System gut nutzen. Wie unten zu sehen ist, zeigt systemd-cgtop sowohl die Aggregation für alle Dienste in einem bestimmten Slice als Teil des Gesamtsystems als auch die Ressourcennutzung jedes Dienstes in einem Slice:
 

Aktuelle Version vom 15. Januar 2023, 10:38 Uhr

Drop Files

Drop-in-Dateien für systemd sind ziemlich einfach einzurichten. Erstellen Sie zunächst ein geeignetes Verzeichnis basierend auf dem Namen Ihres Dienstes in /etc/systemd/system. Führen Sie im cat-Beispiel den folgenden Befehl aus:

  • mkdir -p /etc/systemd/system/generate-load.service.d/

Diese Dateien können beliebig organisiert werden. Sie werden basierend auf der numerischen Reihenfolge ausgeführt.

Erstellen einer Dropin Konfiguration

  • vi /etc/systemd/system/generate-load.service.d/01-limit.conf
[Service]
Slice=AWESOME.slice
MemoryMax=100M 
CPUQuota=30%