Score:1

การจำกัดการใช้งาน swap สำหรับบริการ systemd ใน Ubuntu 18.04

ธง ng
tuk

ฉันกำลังพยายามจำกัดการแลกเปลี่ยนการใช้กระบวนการโดยใช้ MemorySwapMax ตามที่กล่าวไว้ใน เอกสาร ด้วย Ubuntu 18.04

สิ่งแวดล้อม

ubuntu@vrni-platform:/usr/lib/systemd/system$ uname -a
Linux vrni-platform 4.15.0-143-generic #147-Ubuntu SMP วันพุธที่ 14 เมษายน 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

ubuntu@vrni-platform:/usr/lib/systemd/system$ systemctl --version
ระบบd 237
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 ลำดับชั้นเริ่มต้น = ไฮบริด

ไฟล์ systemd unit ของฉันมีลักษณะดังนี้

[หน่วย]
คำอธิบาย=บริการของฉัน
หลังจาก = network.target
StartLimitIntervalSec=0
[บริการ]
ประเภท = ง่าย
เริ่มใหม่ = เสมอ
รีสตาร์ทวินาที = 1
ผู้ใช้ = การสนับสนุน
MemoryMax=2000M
KillMode=กระบวนการ
MemoryAccounting=จริง
OOMScoreAdjust=1000
MemorySwapMax=0
ExecStart=/usr/bin/java -cp /home/support -XX:NativeMemoryTracking=summary -Xmx10000m MemoryConsumer 100 200 1

ฉันพยายามปิดการใช้งาน swap สำหรับกระบวนการนี้โดยระบุ 0 สำหรับ MemorySwapMax. แต่ดูเหมือนว่ามีบางอย่าง ปัญหา ใน systemd ซึ่งได้รับการแก้ไขใน systemd 239

ดังนั้นฉันจึงลองตั้งค่า MemorySwapMax=1M. แต่นั่นก็ดูเหมือนจะไม่ได้จำกัดการใช้หน่วยความจำ swap สำหรับบริการ systemd นี้

เอกสารสำหรับ MemorySwapMax ระบุสิ่งนี้

การตั้งค่านี้ได้รับการสนับสนุนก็ต่อเมื่อใช้ลำดับชั้นของกลุ่มควบคุมแบบรวมและปิดใช้งาน MemoryLimit=

ใครช่วยบอกฉันทีว่าฉันจะรู้ได้อย่างไรว่า systemd กำลังใช้งานอยู่ ลำดับชั้นของกลุ่มควบคุมแบบรวม กำลังถูกใช้ในการตั้งค่าของฉันหรือสิ่งอื่นใดที่อาจเป็นปัญหาซึ่งไม่อนุญาต MemorySwapMax มีผลบังคับใช้?

แก้ไข

ดังที่ได้กล่าวมานี้ คำตอบ ฉันสามารถเห็น cgroup2 เปิดใช้งาน

ubuntu@vrni-platform:/tmp/debraj$ sudo mount -t cgroup2 ไม่มี /tmp/debraj
ubuntu@vrni-platform:/tmp/debraj$ ls -l /tmp/debraj/
รวม 0
-r--r--r-- 1 รูทรูท 0 2 ก.ค. 17:13 น. cgroup.controllers
-rw-r--r-- 1 รูทรูท 0 2 ก.ค. 17:13 น. cgroup.max.ความลึก
-rw-r--r-- 1 รูทรูท 0 2 ก.ค. 17:13 น. cgroup.max.descendants
-rw-r--r-- 1 รูท 0 มิ.ย. 30 14:42 น. cgroup.procs
-r--r--r-- 1 รูทรูท 0 2 ก.ค. 17:13 น. cgroup.stat
-rw-r--r-- 1 รูทรูท 0 2 ก.ค. 17:13 น. cgroup.subtree_control
-rw-r--r-- 1 รูทรูท 0 2 ก.ค. 17:13 น. cgroup.threads
drwxr-xr-x 2 รูทรูท 0 มิ.ย. 30 14:42 น. init.scope
drwxr-xr-x 87 รูทรูท 0 2 ก.ค. 15:05 system.slice
drwxr-xr-x 7 รูทรูท 0 มิ.ย. 30 15:22 user.slice
ubuntu@vrni-platform:/tmp/debraj$ sudo umount /tmp/debraj
Michael Hampton avatar
cz flag
ครั้งล่าสุดที่ฉันตรวจสอบ Ubuntu ปิดใช้งานการสนับสนุนลำดับชั้นของกลุ่มควบคุมแบบรวมศูนย์หรือที่เรียกว่า cgroup v2 อย่างชัดเจน คุณอาจต้องการค้นหา distro อื่น ดู[ที่นี่](https://unix.stackexchange.com/q/471476/20805)เพื่อตรวจสอบว่ามีอยู่ในระบบใดก็ตาม
ng flag
tuk
ขอบคุณสำหรับการตอบกลับ ฉันได้อัปเดตคำถามของฉันแล้วดูเหมือนว่าจะเปิดใช้งานในการตั้งค่าของฉัน แต่ฉันก็ยังไม่แน่ใจว่าทำไม `MemorySwapMax` ถึงไม่ทำงานในการตั้งค่าของฉัน
Score:2
ธง ng
tuk

สิ่งนี้ได้รับคำตอบในรายชื่อผู้รับจดหมาย systemd

ลิงค์1

โพสต์ใหม่ในส่วนที่เกี่ยวข้อง

ดูเหมือนว่าเวอร์ชัน Ubuntu ของคุณกำลังใช้โหมด cgroup "ไฮบริด" โดย ค่าเริ่มต้น. Cgroup v2 เป็นจริง เปิดใช้งาน ในเคอร์เนลของคุณ แต่ไม่ใช่ อย่างจำเป็น ใช้งานอยู่ â ในโหมดไฮบริด systemd ยังคงติดตั้งตัวควบคุมทรัพยากรทั้งหมด (cpu, หน่วยความจำ ฯลฯ) ในโหมด v1 และตั้งค่าของตัวเองเท่านั้น การติดตามกระบวนการในทรี v2 ดู ค้นหา.

คุณสามารถบูตด้วยเคอร์เนล systemd.unified_cgroup_hierarchy=1 ตัวเลือกในการเปลี่ยนทุกอย่างเป็น cgroups v2 แต่ถ้าคุณใช้ ซอฟต์แวร์คอนเทนเนอร์ (นักเทียบท่า, พ็อดแมน) ตรวจสอบให้แน่ใจว่าเป็น cgroups รองรับ v2

ลิงค์2

สวัสดีเดบราจ

ในวันพฤหัสบดีที่ 08 กรกฎาคม 2021 เวลา 05:10:44PM +0530 Debraj Manna เขียนว่า:

Linux vrni-platform 4.15.0-143-generic #147-Ubuntu SMP วันพุธที่ 14 เมษายน 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=บังคับ fsck.repair=ใช่ ipv6.disable=1 systemd.unified_cgroup_hierarchy=1"

แม้หลังจากทำการเปลี่ยนแปลงเหล่านี้แล้ว MemorySwapMax ก็ไม่มีผล

คุณต้องเพิ่ม swapaccount=1 ด้วย การบัญชี swap เปิดใช้งานโดย เริ่มต้นตั้งแต่เคอร์เนล v5.8 เท่านั้น

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา