Score:1

มี "การจัดสรรหน่วยความจำเริ่มต้น" แตกต่างจาก "ขีดจำกัด" ใน Openshift/Kubernetes หรือไม่

ธง cn

ใน java คุณมีพื้นที่ min heap (-Xms) และพื้นที่ฮีปสูงสุด (-Xmx). พื้นที่ฮีปขั้นต่ำถูกจัดสรรให้กับ JVM ตั้งแต่เริ่มต้น "พื้นที่ฮีปสูงสุด" คือขีดจำกัดที่ JVM จะพูดว่า "ออกจากพื้นที่ฮีป" เมื่อไปถึง

มีค่าที่แตกต่างกัน (เริ่มต้นและขีดจำกัด) สำหรับพ็อดใน Openshift/Kubernetes หรือการจัดสรรหน่วยความจำเริ่มต้นจะเท่ากับขีดจำกัดเสมอด้วยเหตุผลบางประการ

Score:1
ธง ng

ใน Kubernetes กลไกการควบคุมทรัพยากร เช่น CPU และหน่วยความจำคือ คำขอ และ ขีด จำกัด.

คำขอ คือสิ่งที่รับประกันว่าคอนเทนเนอร์จะได้รับ หากคอนเทนเนอร์ร้องขอทรัพยากร Kubernetes จะกำหนดเวลาบนโหนดที่สามารถให้ทรัพยากรนั้นได้

ขีด จำกัด ตรวจสอบให้แน่ใจว่าคอนเทนเนอร์ไม่สูงเกินกว่าค่าที่กำหนด คอนเทนเนอร์ได้รับอนุญาตให้ขึ้นไปถึงขีดจำกัดเท่านั้น และจากนั้นจะถูกจำกัด

ในกรณีที่คุณไม่ได้ระบุขีดจำกัด CPU ของคุณ:

  • คอนเทนเนอร์สามารถใช้ทรัพยากรตัวประมวลผลทั้งหมดที่มีอยู่บนโหนดที่รันอยู่ เนื่องจากไม่มีขอบเขตบนของทรัพยากร CPU ที่สามารถใช้ได้
  • คอนเทนเนอร์ถูกกำหนดขีดจำกัดเริ่มต้นโดยอัตโนมัติเมื่อรันในเนมสเปซที่มีขีดจำกัด CPU เริ่มต้น หากมีความจำเป็นต้องเปลี่ยนก็สามารถใช้ได้ ช่วงขีดจำกัด.

ในสถานการณ์ที่คุณระบุขีดจำกัด CPU แต่ไม่ได้ระบุคำขอ CPU Kubernetes จะกำหนดคำขอ CPU ที่ตรงกับขีดจำกัดโดยอัตโนมัติ

หากต้องการเรียนรู้เพิ่มเติมดู เอกสารนี้ และ บทความนี้.

Tristan avatar
cn flag
แต่ฉันได้อ่านแล้วว่าหากไม่ได้ใช้หน่วยความจำคำขอ มันจะพร้อมใช้งานสำหรับคอนเทนเนอร์อื่น
kkopczak avatar
ng flag
ใน[เอกสารนี้](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) คุณสามารถค้นหา: "หากคอนเทนเนอร์ระบุขีดจำกัดหน่วยความจำของตนเอง แต่ไม่ได้ระบุคำขอหน่วยความจำ Kubernetes จะกำหนดคำขอหน่วยความจำที่ตรงกับขีดจำกัดโดยอัตโนมัติ"
kkopczak avatar
ng flag
แต่[บทความนี้](https://www.papertrail.com/solution/tips/kubernetes-logging-tips-to-avoid-memory-and-resource-issues/)น่าจะตอบคำถามของคุณได้ "หากไม่มีการตั้งคำขอและขีดจำกัด พ็อดจะได้รับการจัดการตามลำดับก่อนหลัง Kubernetes จะพยายามกระจาย RAM ระหว่างพ็อดที่กำลังทำงานอยู่ทั้งหมดเท่าๆ กัน แต่ถ้าพ็อดหนึ่งพยายามจัดสรรหน่วยความจำมากขึ้นเรื่อยๆ Kubernetes อาจเตะ พ็อดอื่นๆ ออกจากโหนดเพื่อตอบสนองความต้องการ ไม่มีอะไรหยุดพ็อดไม่ให้ใช้หน่วยความจำว่างทั้งหมดบนโหนด"
Tristan avatar
cn flag
มันไม่ตอบคำถาม ลองมาดูกรณีการใช้งานกัน โหนดของฉันคือ 2 Go ฉันมี 2 พ็อดซึ่ง "ขอ" 1 Go ต่ออัน แต่ใช้เพียง 300 Mo ต่ออัน พ็อดที่สามได้รับอนุญาตให้นำหน่วยความจำที่ไม่ได้ใช้กลับมาใช้ใหม่ได้หรือไม่ ?
kkopczak avatar
ng flag
ขออภัยสำหรับการตอบกลับเป็นเวลานาน ตอบคำถามของคุณ - คนที่สามไม่สามารถทำได้ ดูที่[เอกสารนี้](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#:~:text=How%20Pods%20with,in%20request%20rate.) ในที่นี้สามารถอ่านได้ว่าเป็นไปไม่ได้เนื่องจากต้องการการป้องกันการขาดแคลนทรัพยากรบนโหนดในกรณีที่การใช้ทรัพยากรเพิ่มขึ้นในภายหลัง
Tristan avatar
cn flag
ตกลง ขอบคุณ เอกสารประกอบที่ให้คำตอบได้อย่างสมบูรณ์แบบสำหรับกรณีการใช้งานของฉัน แต่ตอนนี้นี่คือการเปลี่ยนแปลงเล็กน้อย: โหนดคือ 3 Go และพ็อดที่ 3 ขอ 1 Go และขีดจำกัดคือ 2 Go จึงอนุญาตให้เริ่มได้ (ผลรวมของคำขอ
kkopczak avatar
ng flag
ฉันขอโทษ ฉันไม่เข้าใจคำถามของคุณ คุณช่วยอธิบายได้ไหม หรืออาจพิจารณา[ถามคำถามใหม่](https://serverfault.com/help/how-to-ask)?
Tristan avatar
cn flag
นี่เป็นเพียงตัวอย่างที่ชัดเจนในการอธิบายคำถามหลัก: โหนดของฉันคือ 3 Go ฉันมี 2 พ็อดที่ "ขอ" 1 Go ต่ออัน แต่ใช้เพียง 300 Mo ต่ออัน ตอนนี้พ็อดที่ 3 ขอ 1 Go และขีดจำกัดคือ 2 Go จึงอนุญาตให้เริ่มได้ (ผลรวมของคำขอ
Wytrzymały Wiktor avatar
it flag
สวัสดี @ทริสตัน ลองอธิบายกรณีการใช้งานนี้ในคำถามแยกต่างหาก ชุมชนที่เหลือจะสามารถเข้าถึงได้และชัดเจนมากขึ้นเพื่อช่วยเหลือคุณ

โพสต์คำตอบ

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