Score:0

Cgroups Memory Limits - สคริปต์ถูกฆ่าก่อนที่จะถึงขีดจำกัด

ธง cn

ฉันกำลังลองใช้ตัวอย่างง่ายๆ เพื่อทำความเข้าใจวิธีจำกัดการใช้หน่วยความจำของกระบวนการ

ฉันได้สร้างกลุ่มหน่วยความจำทดสอบ ตั้งค่าขีดจำกัดสำหรับทั้ง memory.limit_in_bytes และ memory.memsw.limit_in_bytes เป็น 5 MB

ฉันมีโปรแกรมง่าย ๆ ที่จัดสรรหน่วยความจำเพิ่มขึ้นทีละ 1 MB (โดยการอ่านจากอุปกรณ์สุ่ม)

ฉันคาดว่าสคริปต์ของฉันจะไปถึงที่ใดที่หนึ่งใกล้กับ 5 MB ก่อนที่มันจะถูกฆ่า แต่มันถูกฆ่าทันทีที่อ่าน 1 MB

เมื่อฉันเพิ่มขีดจำกัด cgroup เป็น 8 MB มันจะถูกฆ่าหลังจากใช้ไป 3 MB

ฉันได้ลองใช้ขีดจำกัดที่แตกต่างกัน และสังเกตเห็นว่ามันถูกฆ่าอย่างต่อเนื่องก่อนที่จะถึงครึ่งหนึ่งของขีดจำกัดที่จัดสรรไว้

ใครช่วยกรุณาแจ้งให้เราทราบหากฉันขาดอะไรอีก?

ขอขอบคุณคำแนะนำบางอย่าง

user10489 avatar
in flag
โปรดทราบว่าคุณไม่จำเป็นต้องอ่านจากอุปกรณ์เพื่อจัดสรรหน่วยความจำ การใช้ malloc และแตะหนึ่งไบต์ในแต่ละหน้าก็เพียงพอแล้ว
Score:0
ธง in

ขีดจำกัดของหน่วยความจำ cgroups ยังครอบคลุมรหัสปฏิบัติการสำหรับโปรแกรม รวมถึงตัวโปรแกรมปฏิบัติการเองและไลบรารีที่ใช้ร่วมกันใดๆ ที่จำเป็น คุณสามารถใช้เครื่องมือเช่น ปล และ สูงสุด (หรือตัวแปรอันดับต้น ๆ ตัวใดตัวหนึ่ง) เพื่อดูการใช้หน่วยความจำจริงก่อนที่คุณจะกำหนดขีดจำกัดด้วย cgroups และอาจเป็นไปได้ก่อนที่คุณจะอนุญาตให้โปรแกรมทดสอบของคุณเริ่มจัดสรรหน่วยความจำ

cn flag
ขอขอบคุณ. ฉันสงสัยไลบรารี่ที่โปรแกรมใช้ และตามที่คุณแนะนำ ดูเหมือนว่าจะเป็นอย่างนั้น ฉันยังใช้ pmap เพื่อตรวจสอบหน่วยความจำที่ใช้จริง และนั่นจะตรวจสอบคำตอบของคุณที่นี่

โพสต์คำตอบ

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