Score:0

จะจำกัด CPU Cores ใน Ubuntu / Virtualmin ได้อย่างไร?

ธง is

ข้อมูลระบบ
ประเภทและเวอร์ชันของระบบปฏิบัติการ
*อูบุนตู ลินุกซ์ 20.04.4

Virtualmin เวอร์ชั่น 6.17-3*

ฉันเป็นเจ้าของแต่เพียงผู้เดียวของเซิร์ฟเวอร์ของฉันและเซิร์ฟเวอร์เสมือนทั้งหมด ฉันต้องการจำกัดทรัพยากรที่ใช้โดยเซิร์ฟเวอร์ ขณะนี้ฉันตั้งค่าการใช้ ram โดยแก้ไขไฟล์ limits.conf ดังนี้ -

oneofmyuser ยาก memlock 1024

ตอนนี้ฉันสับสนกับตัวเลือก cpu ในโค้ดตัวอย่าง -

#ที่ไหน:
#<โดเมน> สามารถ:
# - ชื่อผู้ใช้
# - ชื่อกลุ่มพร้อมไวยากรณ์ @group
# - สัญลักษณ์แทน * สำหรับรายการเริ่มต้น
# - ไวด์การ์ด % สามารถใช้กับไวยากรณ์ %group
# สำหรับขีด จำกัด maxlogin
# - หมายเหตุ: ขีดจำกัดของกลุ่มและอักขระตัวแทนจะไม่นำไปใช้กับรูท
# หากต้องการใช้ขีดจำกัดกับผู้ใช้รูท <โดเมน> จะต้องเป็น
# รากชื่อผู้ใช้ที่แท้จริง
#
#<type> สามารถมีได้สองค่า:
# - "soft" สำหรับการบังคับใช้ขีด จำกัด ที่นุ่มนวล
# - "ยาก" สำหรับการบังคับใช้ขีด จำกัด ยาก
#
#<item> สามารถเป็นหนึ่งในรายการต่อไปนี้:
# - core - จำกัด ขนาดไฟล์หลัก (KB)
# - ข้อมูล - ขนาดข้อมูลสูงสุด (KB)
# - fsize - ขนาดไฟล์สูงสุด (KB)
# - memlock - พื้นที่แอดเดรสในหน่วยความจำที่ถูกล็อกสูงสุด (KB)
# - nofile - จำนวนตัวอธิบายไฟล์เปิดสูงสุด
# - rss - ขนาดชุดผู้อยู่อาศัยสูงสุด (KB)
# - สแต็ค - ขนาดสแต็กสูงสุด (KB)
# - cpu - เวลา CPU สูงสุด (นาที)
# - nproc - จำนวนกระบวนการสูงสุด
# - as - ขีด จำกัด พื้นที่ที่อยู่ (KB)
# - maxlogins - จำนวนการเข้าสู่ระบบสูงสุดสำหรับผู้ใช้รายนี้
# - maxsyslogins - จำนวนการเข้าสู่ระบบสูงสุดในระบบ
# - ลำดับความสำคัญ - ลำดับความสำคัญในการเรียกใช้กระบวนการของผู้ใช้
# - ล็อค - จำนวนไฟล์ล็อคสูงสุดที่ผู้ใช้สามารถเก็บได้
# - sigpending - จำนวนสัญญาณที่รอดำเนินการสูงสุด
# - msgqueue - หน่วยความจำสูงสุดที่ใช้โดยคิวข้อความ POSIX (ไบต์)
# - ดี - ลำดับความสำคัญดีสูงสุดที่อนุญาตให้เพิ่มเป็นค่า: [-20, 19]
# - rtprio - ลำดับความสำคัญเรียลไทม์สูงสุด
# - chroot - เปลี่ยนรูทเป็นไดเร็กทอรี (เฉพาะเดเบียน)

ฉันจะจำกัดผู้ใช้ให้ใช้เพียง 1 หรือ 2 คอร์ได้อย่างไร มีค่าหลัก แต่ควรเป็น Kb หรือไม่ ฉันต้องการจำกัดตัวอย่าง 2 คอร์หรือไม่ ดังนั้นกี่กิโล? นอกจากนี้สำหรับซีพียู ? ค่าที่เหมาะสมที่สุดสำหรับตัวเลือกเหล่านี้สำหรับเซิร์ฟเวอร์ปกติที่มีไซต์เวิร์ดเพรสปกติคืออะไร

Score:1
ธง no

บน Linux คุณสามารถตรึงกระบวนการกับซีพียูด้วย ชุดงาน. (ดู ชุดงานคน). (ดูสิ่งนี้ด้วย https://unix.stackexchange.com/questions/425065/linux-how-to-know- which-processes-are-pinned-to- which-core)

คุณยังสามารถใช้ ซีพียู (ดู แมนยู) ซึ่งใช้กลุ่มควบคุมเพื่อตั้งค่าขีดจำกัดการใช้งาน cpu โดยที่ 100 จะเทียบเท่ากับ CPU หนึ่งตัว

หากต้องการใช้สิ่งเหล่านี้ คุณจะต้องค้นหาว่ากระบวนการใดที่เปิดใช้งานสำหรับผู้ใช้ และเพิ่มคำสั่งด้านบน ฉันไม่คุ้นเคยกับ Virtualmin แต่เป็นโอเพ่นซอร์ส ฉันสงสัยว่าคุณจะสามารถค้นหาตำแหน่งที่เรียกใช้กระบวนการเหล่านี้ได้อย่างง่ายดายโดย grepping ซอร์สโค้ด

เวลาของ CPU ใน limits.conf คือเวลาของ CPU มีหน่วยเป็นนาทีตามที่แสดงในคอลัมน์เวลาโดย สูงสุด ดังนั้นจึงเป็นเพียงการวัดระยะเวลาที่กระบวนการได้รับอนุญาตให้ทำงานเท่านั้น

ค่า "หลัก" ใน limits.conf (ดู จำกัดคน.conf) หมายถึงขนาดของไฟล์ดัมพ์หลัก ซึ่งเป็นดัมพ์ที่คุณสามารถเปิดใช้กระบวนการหากเกิดข้อผิดพลาด สำหรับการดีบัก

เบื้องหลังของสิ่งนี้คือ Linux ได้รับการออกแบบมาให้ทำในสิ่งที่ตรงกันข้าม - กระจายงานไปทั่ว CPU - และทำได้ดีมากในสิ่งนั้น เหตุผลเดียวที่จะจำกัดงานไว้ที่ CPU บนเครื่องมัลติคอร์อย่างสมเหตุสมผลคือการทำบางสิ่งด้วยจังหวะเวลาที่สมบูรณ์แบบ - หรือการโจมตีด้วยจังหวะเวลา

ตัวเลือกอื่นๆ คือการล็อกระบบปฏิบัติการไปยังคอร์บางตัวจาก bootloader หรือคุณสามารถเลียนแบบ CPU เอกพจน์หรือรันคอนเทนเนอร์ที่ตรึงไว้กับ CPU บางตัว

โพสต์คำตอบ

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