ตั้งค่าเริ่มต้นที่ดีสำหรับผู้ใช้ที่กำหนด (จำกัด


12

มีใครบอกวิธีตั้งค่าเริ่มต้นniceเป็น (ตามที่แสดงโดยtop) ของผู้ใช้ ฉันได้พบว่า / etc / security /limits.conf เป็นสถานที่ แต่ถ้าฉันใส่อย่างใดอย่างหนึ่ง:

username_of_a_guy  -  nice  19
username_of_a_guy  soft  nice  19
username_of_a_guy  hard  nice  19

มันไม่ทำงาน (ในขณะที่ควรใช่มั้ย)

โปรดทราบว่าฉันรีบูตเครื่องตั้งแต่นั้นมา

ขอบคุณล่วงหน้ามากสำหรับความช่วยเหลือ ฉันใช้เดเบียนที่ไม่เสถียร (uptodate)

บริบท:

ที่ทำงานของฉันเรามีเครือข่ายท้องถิ่น: ทุกคนมีคอมพิวเตอร์เป็นของตัวเองและทุกคนสามารถสร้างบัญชีในเครื่องของคนอื่นได้หากชอบ กฎง่ายๆคือถ้าคุณทำงานกับคนอื่นในคอมพิวเตอร์โปรดดีกระบวนการของคุณ ( nice 19)

ฉันต้องการตั้งค่าเริ่มต้นที่ดีสำหรับผู้ใช้ที่กำหนดเป็น 19 ครั้งและสำหรับทั้งหมด


ค่อนข้างเกี่ยวข้อง: unix.stackexchange.com/questions/209398/ …
Kusalananda

คำตอบ:


13

ฉันเชื่อว่ารูปแบบที่ถูกต้องคือ:

@users      -       priority        10
username    -       priority        19

นี่คือตัวอย่างของการตั้งค่าที่ฉันใช้ในการผลิต (ชัดกับผู้ใช้จริง / กลุ่ม)

การniceตั้งค่าคือการกำหนดค่า nice ขั้นต่ำ (เช่นลำดับความสำคัญสูงสุด) บางคนสามารถตั้งค่ากระบวนการของพวกเขาเป็นไม่ใช่ลำดับความสำคัญเริ่มต้นของพวกเขา


2
ก่อนอื่นขอขอบคุณสำหรับคำตอบของคุณ (ขอบคุณเช่นกัน @mattdm) ดูเหมือนว่าวิธีนี้ใช้งานได้ อย่างไรก็ตามฉันยังคงสับสนเกี่ยวกับความแตกต่างระหว่าง "ดี" และ "ลำดับความสำคัญ": ทั้งคู่จะแสดงด้วย "อันดับสูงสุด" แต่ค่าที่ยกมาสำหรับดีเป็นสิ่งที่ฉันต้องตั้งค่าลำดับความสำคัญ มันดูแปลกสำหรับฉัน ยิ่งกว่านั้นลำดับความสำคัญที่ยิ่งใหญ่กว่า (พูด 39 แทน 20) หมายถึงกระบวนการที่มีความสำคัญน้อยลง ขอขอบคุณ.
Alex

4
ลำดับความสำคัญที่ดีของ 'NI' ที่ด้านบนคือสิ่งที่จะถูกกำหนดโดยการpriorityตั้งค่าขีด จำกัด นี่จะเป็นลำดับความสำคัญเริ่มต้นของกระบวนการใด ๆ สำหรับผู้ใช้ / กลุ่มนั้นเมื่อพวกเขาเข้าสู่ระบบคุณสามารถตั้งค่านี้ให้อยู่ระหว่าง -20 ถึง 20 เท่านั้นค่า 'PR' ที่ด้านบนคือลำดับความสำคัญของตัวจัดตารางเวลาจริง ปัจจัยโดยกำหนดการของเคอร์เนล
jsbillings

1
นอกจากนี้ใช่ลำดับความสำคัญสูงกว่าหมายความว่ามันมีโอกาสน้อยที่จะได้รับการกำหนดเวลาในการรับรอบของ CPU
jsbillings

1
โอเคขอบคุณมากสำหรับความเข้าใจผิดนี้ BTW ฉันไม่ได้ลองวิธีอื่น ๆ (ที่เกี่ยวข้องandหรือcgroup) ซึ่งอาจดีกว่าในสถานการณ์อื่น ๆ กว่าของฉัน (ต้องการการตรวจสอบอย่างต่อเนื่องหรือการจัดการผู้ใช้จำนวนมาก - ซึ่งเป็นกรณีของฉันมากเกินไป)
Alex

อืม ... มันใช้งานได้สำหรับผู้ใช้รายหนึ่ง แต่ไม่ใช่คนอื่นบนเครื่อง Ubuntu ของฉัน ฉันจะกลับมาถ้าฉันสามารถหาสาเหตุได้ ;-)
Ken Sharp

3

ฉันสามารถยืนยันได้ว่าไม่สามารถใช้กับระบบของฉันได้ เอกสารบอกว่า "เคอร์เนล 2.6.11 ขึ้นไป" และฉันใช้ Fedora rawhide พร้อมเคอร์เนล 2.6.38-rc6 ฉันสงสัยว่ามันขึ้นอยู่กับตัวกำหนดตารางเวลาหรือไม่และไม่สามารถใช้กับ CFQ ที่แนะนำใน 2.6.23 ได้ ("Completely Fair Scheduler")

แม้ว่าสิ่งที่จะได้ผลนั้นเป็นสิ่งที่เป็นไปไม่ได้ที่จะค้นหาเพราะเป็นชื่อที่น่ากลัวand- ดีมอนอัตโนมัติ ดู http://and.sourceforge.net/ มีให้จาก Fedora ด้วยyum install andแต่น่าเสียดายที่ไม่มีใน EPEL และมันอยู่ใน Debian apt-get install andเกินไป:

หากคุณกำลังใช้การกระจายที่ทันสมัยแม้ว่าจะมีวิธีที่ดีกว่า คุณสามารถใช้เครื่องมือจากlibcgroupเพื่อตั้งค่าcgroupระดับเคอร์เนลที่จำกัด การแชร์ซีพียูและเพื่อ "จำแนก" กระบวนการของผู้ใช้ใน cgroup นี้โดยอัตโนมัติ ด้วยวิธีนี้คุณสามารถจัดลำดับความสำคัญของ I / O และ จำกัด การใช้หน่วยความจำ (รวมถึงการแชร์แคชดิสก์)


ฉันยอมรับว่าการใช้ cgroups เป็นวิธีที่ยอดเยี่ยมในการ จำกัด ผู้อื่นไม่ให้ใช้งานรอบ CPU ทั้งหมดในคอมพิวเตอร์ของคุณ น่าเศร้าที่ระบบที่ฉันรองรับ (RHEL5) ไม่มีเมล็ดที่รองรับมันดังนั้นฉันจึงต้องปรับเปลี่ยนลำดับความสำคัญ เมื่อเราอัปเดตเป็น RHEL6 ฉันมั่นใจว่าเราจะมีการตั้งค่ากลุ่ม cg ค่อนข้างซับซ้อน
jsbillings
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.