ฉันกำลังพยายามจำกัดการแลกเปลี่ยนการใช้กระบวนการโดยใช้ 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=
ใครช่วยบอกฉันที ฉันจะรู้ได้อย่างไร ลำดับชั้นของกลุ่มควบคุมแบบรวม
กำลังถูกใช้ในการตั้งค่าของฉันหรือสิ่งอื่นใดที่อาจเป็นปัญหาซึ่งไม่อนุญาต MemorySwapMax
มีผลบังคับใช้?