ฉันพยายามเรียกใช้สคริปต์จำนวนมากที่เกี่ยวข้องกับเซิร์ฟเวอร์เกมใน Terminator ปัญหาเดียวก็คือเมื่อฉันทำเช่นนี้ Terminator ตรวจจับแกน CPU ของฉันและพีซีล่าช้า มีวิธีใดบ้างในการเริ่มต้นใช้งาน แต่หลอกให้คิดว่าฉันมีซีพียู 1 คอร์?
ฉันพยายามเรียกใช้สคริปต์จำนวนมากที่เกี่ยวข้องกับเซิร์ฟเวอร์เกมใน Terminator ปัญหาเดียวก็คือเมื่อฉันทำเช่นนี้ Terminator ตรวจจับแกน CPU ของฉันและพีซีล่าช้า มีวิธีใดบ้างในการเริ่มต้นใช้งาน แต่หลอกให้คิดว่าฉันมีซีพียู 1 คอร์?
คำตอบ:
ไม่ใช่terminator
ว่ากำลัง "กระจาย" กับ CPU ทั้งหมดของกระบวนการที่กำหนด Linux เอง (เคอร์เนล) กำลังทำสิ่งนี้ ภารกิจ (กระบวนการ) ถูกกำหนดเวลาให้พร้อมใช้งานเพื่อให้ทำงานบน CPU ทั้งหมดตามค่าเริ่มต้น หากใช้เธรดจะสามารถใช้ CPU มากกว่าหนึ่งตัวในแต่ละครั้ง
เพื่อ จำกัด การกระบวนการที่จะ CPU taskset
ที่เฉพาะเจาะจงที่คุณใช้คำสั่ง
taskset --cpu-list 1,2 my_command
คำสั่งนี้บังคับให้ my_command รันบน CPUs # 1 หรือ # 2
หากต้องการเรียนรู้เพิ่มเติมพิมพ์man taskset
หรือค้นหา "linux CPU affinity" (กดแรกที่นี่ )
kernel.sched_autogroup_enabled = 0
เพื่อ/etc/sysctl.conf
ที่จะทำให้การทำงานของมัน อย่างไรก็ตามฉันยังพบว่า 13.10 เคอร์เนลมักจะตื่นตระหนกในระหว่างการบูตหากปิดการใช้งานกลุ่มอัตโนมัติ
แม้ว่าคำตอบอื่นให้คำตอบตามตัวอักษรไปแล้ว แต่ฉันก็อยากจะสำรวจความเป็นไปได้ว่านี่ไม่ใช่วิธีที่ถูกต้อง แต่คุณควรเรียกใช้สคริปต์ที่คุณไม่ต้องการทำให้คอมพิวเตอร์ช้าลง (เช่นสคริปต์ที่ไม่โต้ตอบ) โดยใช้nice
คำสั่ง
ในการทำเช่นนี้เพียงนำหน้าคำสั่งที่คุณต้องการเรียกใช้ด้วย nice ตัวอย่างเช่น:
nice command_to_run
สิ่งนี้จะทำให้โปรแกรมถูกยกเลิกการจัดลำดับความสำคัญด้านล่างงานอื่น ๆ และจะไม่ทำให้เครื่องของคุณช้าลง ฉันมักจะใช้เทคนิคนี้เมื่อทำการคอมไพล์แบบยาวซึ่งจะทำให้พีซีของฉันช้าลงในการรวบรวมข้อมูลนี่เป็นข้อดีของการอนุญาตให้โปรแกรมใช้แกนประมวลผลทั้งหมดเมื่อเครื่องไม่ว่าง แต่จะหยุดใช้อย่างรวดเร็วเมื่อคุณเรียกใช้บางสิ่ง อื่น.
taskset nice open terminator
ให้ใช้ทั้งสอง อย่างไรก็ตามนั่นจะเกินความจำเป็นเนื่องจากคุณจะใช้สองโปรแกรมที่แตกต่างกันเพื่อให้บรรลุผลของการลดการใช้ทรัพยากรของโปรแกรม