Tôi đang cố gắng hạn chế việc sử dụng trao đổi của một quy trình bằng cách sử dụng MemorySwapMax
như đã đề cập trong tài liệu với Ubuntu 18.04.
Môi trường
ubuntu@vrni-platform:/usr/lib/systemd/system$ uname -a
Linux vrni-platform 4.15.0-143-generic #147-Ubuntu SMP Thứ tư ngày 14 tháng 4 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@vrni-platform:/usr/lib/systemd/system$ systemctl --version
hệ thống 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
Tệp đơn vị systemd của tôi trông như bên dưới
[Đơn vị]
Mô tả=Dịch vụ của tôi
Sau=mạng.mục tiêu
StartLimitIntervalSec=0
[Dịch vụ]
Loại = đơn giản
Khởi động lại = luôn luôn
Khởi động lạiSec=1
Người dùng = hỗ trợ
Bộ nhớMax=2000M
KillMode=tiến trình
MemoryAccounting=true
OOMScoreAdjust=1000
Hoán đổi bộ nhớMax=0
ExecStart=/usr/bin/java -cp /home/support -XX:NativeMemoryTracking=summary -Xmx10000m MemoryConsumer 100 200 1
Tôi đã cố vô hiệu hóa trao đổi cho quá trình này bằng cách chỉ định 0 cho MemorySwapMax
. Nhưng có vẻ như đã có một số số báo trong systemd được sửa trong systemd 239.
Vì vậy, tôi cũng đã thử thiết lập Hoán đổi bộ nhớMax=1M
. Nhưng điều đó dường như cũng không hạn chế việc sử dụng bộ nhớ hoán đổi cho dịch vụ systemd này.
Các tài liệu cho MemorySwapMax
nói điều này
Cài đặt này chỉ được hỗ trợ nếu hệ thống phân cấp nhóm điều khiển hợp nhất được sử dụng và tắt MemoryLimit=.
Ai đó có thể cho tôi biết làm thế nào tôi có thể biết liệu systemd có đang sử dụng không hệ thống phân cấp nhóm kiểm soát thống nhất
đang được sử dụng trong thiết lập của tôi hoặc điều gì khác có thể là vấn đề không cho phép MemorySwapMax
có hiệu lực?
CHỈNH SỬA
Như đã đề cập trong này câu trả lời tôi có thể thấy cgroup2
kích hoạt
ubuntu@vrni-platform:/tmp/debraj$ sudo mount -t cgroup2 none /tmp/debraj
ubuntu@vrni-platform:/tmp/debraj$ ls -l /tmp/debraj/
tổng số 0
-r--r--r-- 1 root root 0 ngày 2 tháng 7 17:13 cgroup.controllers
-rw-r--r-- 1 root root 0 ngày 2 tháng 7 17:13 cgroup.max.depth
-rw-r--r-- 1 root root 0 ngày 2 tháng 7 17:13 cgroup.max.descendants
-rw-r--r-- 1 root root 0 ngày 30 tháng 6 14:42 cgroup.procs
-r--r--r-- 1 root root 0 ngày 2 tháng 7 17:13 cgroup.stat
-rw-r--r-- 1 root root 0 ngày 2 tháng 7 17:13 cgroup.subtree_control
-rw-r--r-- 1 root root 0 ngày 2 tháng 7 17:13 cgroup.threads
drwxr-xr-x 2 gốc gốc 0 ngày 30 tháng 6 14:42 init.scope
drwxr-xr-x 87 gốc gốc 0 ngày 2 tháng 7 15:05 system.slice
drwxr-xr-x 7 gốc gốc 0 ngày 30 tháng 6 15:22 user.slice
ubuntu@vrni-platform:/tmp/debraj$ sudo umount /tmp/debraj