Điểm:1

Hạn chế sử dụng hoán đổi cho dịch vụ systemd trong Ubuntu 18.04

lá cờ ng
tuk

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
Michael Hampton avatar
lá cờ cz
Lần cuối cùng tôi kiểm tra, Ubuntu đã vô hiệu hóa rõ ràng hỗ trợ cho hệ thống phân cấp nhóm điều khiển thống nhất hay còn gọi là cgroup v2. Bạn có thể muốn tìm một bản phân phối khác. Xem [tại đây](https://unix.stackexchange.com/q/471476/20805) để kiểm tra xem nó có khả dụng trên bất kỳ hệ thống cụ thể nào không.
lá cờ ng
tuk
Cảm ơn vì đã trả lời. Tôi đã cập nhật câu hỏi của mình, nó dường như được bật trên thiết lập của tôi. Nhưng tôi vẫn không chắc tại sao `MemorySwapMax` không hoạt động trong thiết lập của tôi.
Điểm:2
lá cờ ng
tuk

Điều này đã được trả lời trong danh sách gửi thư systemd.

liên kết1

Đăng lại các phần có liên quan.

Có vẻ như phiên bản Ubuntu của bạn đang sử dụng chế độ cgroup "lai" bởi mặc định. Cgroup v2 thực sự là kích hoạt trong hạt nhân của bạn, nhưng không nhất thiết đang sử dụng – ở chế độ kết hợp, systemd vẫn gắn kết tất cả các bộ điều khiển tài nguyên (cpu, bộ nhớ, v.v.) ở chế độ v1 và chỉ thiết lập bộ điều khiển tài nguyên của riêng nó quá trình theo dõi trong cây v2. Nhìn thấy tìm thấy.

Bạn có thể khởi động với kernel systemd.unified_cgroup_hierarchy=1 tùy chọn để chuyển mọi thứ sang cgroups v2, nhưng nếu bạn đang sử dụng phần mềm vùng chứa (docker, podman) đảm bảo đó là các nhóm tương thích với v2.

liên kết2

Xin chào Debraj.

Vào Thứ Năm, ngày 08 tháng 7 năm 2021 lúc 05:10:44PM +0530, Debraj Manna đã viết:

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 […] GRUB_CMDLINE_LINUX="audit=1 rootdelay=180 nousb net.ifnames=0 biosdevname=0 fsck.mode=force fsck.repair=yes ipv6.disable=1 systemd.unified_cgroup_hierarchy=1"

Ngay cả sau khi thực hiện những thay đổi này, MemorySwapMax không có hiệu lực.

Bạn cũng cần thêm tài khoản hoán đổi = 1, kế toán hoán đổi được kích hoạt bởi chỉ mặc định kể từ kernel v5.8.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.