Puncte:1

Restricționarea utilizării swap pentru un serviciu systemd în Ubuntu 18.04

drapel ng
tuk

Încerc să restricționez utilizarea de swap a unui proces folosind MemorySwapMax așa cum se menționează în doc cu Ubuntu 18.04.

Mediu inconjurator

ubuntu@vrni-platform:/usr/lib/systemd/system$ uname -a
Linux vrni-platform 4.15.0-143-generic #147-Ubuntu SMP Miercuri 14 aprilie 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

ubuntu@vrni-platform:/usr/lib/systemd/system$ systemctl --version
systemd 237
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid

Fișierul meu de unitate systemd arată ca mai jos

[Unitate]
Description=Serviciul meu
După=rețea.țintă
StartLimitIntervalSec=0
[Serviciu]
Tip=simplu
Restart=intotdeauna
RestartSec=1
Utilizator=asistență
MemoryMax=2000M
KillMode=proces
MemoryAccounting=adevărat
OOMScoreAdjust=1000
MemorySwapMax=0
ExecStart=/usr/bin/java -cp /home/support -XX:NativeMemoryTracking=summary -Xmx10000m MemoryConsumer 100 200 1

Am încercat să dezactivez schimbul pentru acest proces specificând 0 pentru MemorySwapMax. Dar se pare că au fost unele problema în systemd care este fixat în systemd 239.

Așa că am încercat și setarea MemorySwapMax=1M. Dar, de asemenea, pare să nu restricționeze utilizarea memoriei de swap pentru acest serviciu systemd.

Documentatia pentru MemorySwapMax afirmă acest lucru

Această setare este acceptată numai dacă este utilizată ierarhia unificată a grupului de control și dezactivează MemoryLimit=.

Poate cineva să-mi spună cum pot să știu dacă systemd folosește ierarhie unificată a grupului de control este folosit în configurarea mea sau care ar putea fi problema care nu permite MemorySwapMax sa intre in vigoare?

EDITAȚI | ×

După cum se menționează în aceasta Răspuns Pot vedea cgroup2 activat

ubuntu@vrni-platform:/tmp/debraj$ sudo mount -t cgroup2 none /tmp/debraj
ubuntu@vrni-platform:/tmp/debraj$ ls -l /tmp/debraj/
total 0
-r--r--r-- 1 root root 0 Jul 2 17:13 cgroup.controllers
-rw-r--r-- 1 rădăcină rădăcină 0 2 iulie 17:13 cgroup.max.depth
-rw-r--r-- 1 root root 0 Jul 2 17:13 cgroup.max.descendants
-rw-r--r-- 1 rădăcină rădăcină 0 30 iunie 14:42 cgroup.procs
-r--r--r-- 1 root root 0 Jul 2 17:13 cgroup.stat
-rw-r--r-- 1 rădăcină rădăcină 0 2 iulie 17:13 cgroup.subtree_control
-rw-r--r-- 1 rădăcină rădăcină 0 2 iulie 17:13 cgroup.threads
drwxr-xr-x 2 root root 0 iunie 30 14:42 init.scope
drwxr-xr-x 87 root root 0 Jul 2 15:05 system.slice
drwxr-xr-x 7 root root 0 30 iunie 15:22 user.slice
ubuntu@vrni-platform:/tmp/debraj$ sudo umount /tmp/debraj
Michael Hampton avatar
drapel cz
Ultima dată când am verificat, Ubuntu a dezactivat în mod explicit suportul pentru ierarhia grupului de control unificat, alias cgroup v2. Poate doriți să găsiți o altă distribuție. Consultați [aici](https://unix.stackexchange.com/q/471476/20805) pentru a verifica dacă este disponibil pe orice sistem dat.
drapel ng
tuk
Mulțumesc pentru răspuns. Mi-am actualizat întrebarea, se pare că este activată în configurarea mea. Dar încă nu sunt sigur de ce „MemorySwapMax” nu funcționează în configurarea mea.
Puncte:2
drapel ng
tuk

Acest lucru a fost răspuns în lista de corespondență systemd.

Link1

Repostarea părților relevante.

Se pare că versiunea dvs. Ubuntu utilizează modul cgroup „hibrid” de către Mod implicit. Cgroup v2 este într-adevăr activat în nucleul tău, dar nu neapărat in folosinta â în modul hibrid, systemd încă montează toate controlerele de resurse (procesor, memorie etc.) în modul v1 și își configurează doar propriile urmărirea procesului în arborele v2. Vedea găsimnt.

Puteți porni cu nucleul systemd.unified_cgroup_hierarchy=1 opțiunea de a comuta totul la cgroups v2, dar dacă utilizați software-ul container (docker, podman) asigurați-vă că acestea sunt cgroups compatibil cu v2.

Link2

Salut Debraj.

Pe joi, 08 iulie 2021 la 17:10:44 +0530, Debraj Manna a scris:

Linux vrni-platform 4.15.0-143-generic #147-Ubuntu SMP Miercuri 14 aprilie 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux [...] GRUB_CMDLINE_LINUX="audit=1 rootdelay=180 nousb net.ifnames=0 biosdevname=0 fsck.mode=force fsck.repair=da ipv6.disable=1 systemd.unified_cgroup_hierarchy=1"

Chiar și după efectuarea acestor modificări MemorySwapMax nu intră în vigoare.

Trebuie să adăugați și swapaccount=1, contabilitatea swap este activată de implicit numai din kernel v5.8.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.