[systemd-devel] Restricting swap usage for a process managed via systemd

Debraj Manna subharaj.manna at gmail.com
Sun Jul 4 07:35:54 UTC 2021


Hi

I am trying to restrict the swap usage of a process using MemorySwapMax as
mentioned in the doc
<http://manpages.ubuntu.com/manpages/bionic/man5/systemd.resource-control.5.html>
with
Ubuntu 18.04.

Environment
------------

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

ubuntu at 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

My systemd unit file looks like below

[Unit]
Description=My service
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=support
MemoryMax=2000M
KillMode=process
MemoryAccounting=true
OOMScoreAdjust=1000
MemorySwapMax=1M
ExecStart=/usr/bin/java -cp /home/support
-XX:NativeMemoryTracking=summary -Xmx10000m MemoryConsumer 100 200 1

MemoryMax is working as expected but MemorySwapMax seems to be not
taking effect and I am seeing the process, MemoryConsumer still using
swap more than the one specified in MemorySwapMax,

MemorySwapMax documentation states "This setting is supported only if
the unified control group hierarchy is used and disables
MemoryLimit=."

As mentioned here <https://unix.stackexchange.com/a/471495/364181> I
can see cgroup v2 enabled on my setup.

ubuntu at vrni-platform:/tmp/tuk$ sudo mount -t cgroup2 none /tmp/tuk
ubuntu at vrni-platform:/tmp/tuk$ ls -l /tmp/tuk/
total 0
-r--r--r--  1 root root 0 Jul  2 17:13 cgroup.controllers
-rw-r--r--  1 root root 0 Jul  2 17:13 cgroup.max.depth
-rw-r--r--  1 root root 0 Jul  2 17:13 cgroup.max.descendants
-rw-r--r--  1 root root 0 Jun 30 14:42 cgroup.procs
-r--r--r--  1 root root 0 Jul  2 17:13 cgroup.stat
-rw-r--r--  1 root root 0 Jul  2 17:13 cgroup.subtree_control
-rw-r--r--  1 root root 0 Jul  2 17:13 cgroup.threads
drwxr-xr-x  2 root root 0 Jun 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 Jun 30 15:22 user.slice
ubuntu at vrni-platform:/tmp/debraj$ sudo umount /tmp/tuk

Can someone suggest what configuration I am missing?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20210704/d34ebde7/attachment.htm>


More information about the systemd-devel mailing list