วิธีการป้องกันไม่ให้งาน cron ทำงานในบางช่วงเวลาใน Debian? (a 'gaming' / 'โหมดประสิทธิภาพ')


12

ดูเหมือนว่าฉันได้ตั้งค่า logcheck เป็นงาน cron และเมื่อใดก็ตามที่กระบวนการทำงานgrepโดยlogcheckใช้เวลาประมาณ CPU ของ CPU ของฉัน

ตอนนี้ฉันมีบางช่วงเวลาที่ฉันต้องการ CPU เต็มความจุและให้ระบบของฉันใช้ทรัพยากรน้อยที่สุดเท่าที่จะทำได้ยกเว้นเฉพาะกระบวนการ / (ซึ่งฉันอาจระบุได้)

เป็นไปได้ไหมที่จะตั้งค่า Debian 9.1 ด้วยเครื่อง KDE เป็นโหมดประสิทธิภาพบางอย่าง (หรือ 'โหมดการเล่นเกม') ที่ป้องกันกระบวนการที่ผู้ใช้ไม่ได้เริ่มต้นอย่างชัดเจนจากการใช้ทรัพยากรระบบจำนวนมากลดภาระของกระบวนการพื้นหลังและที่สำคัญที่สุด : ล่าช้างาน cron จนกว่าโหมดนั้นจะหยุดอีกครั้ง?


6
วิธีแก้ปัญหาอย่างง่ายจะไม่เรียกใช้ logcheck ในงาน cron แต่แทนที่จะเขียนสคริปต์ที่กำหนดเองและเรียกใช้ในงาน cron ในสคริปต์ให้ดำเนินการตรวจสอบสิ่งที่คุณต้องการก่อนแล้วรัน logcheck ที่ท้ายสคริปต์ถ้าตรวจสอบรหัสผ่านทั้งหมด
SauceCode

5
ตรวจสอบลำดับความสำคัญ ถ้ามันถูกลดระดับลงเหลือ 19 มันจะทำงานเฉพาะเมื่อ cpu ไม่มีสิ่งอื่นให้ทำ
Thorbjørn Ravn Andersen

คำตอบ:


18

หาก "บางช่วงเวลา" ไม่ได้รับการแก้ไขนั่นคือคุณต้องการระบุด้วยตนเองเมื่อระบบของคุณเข้าและออกจาก "โหมดประสิทธิภาพ" คุณสามารถหยุดและเริ่มต้นcron:

sudo systemctl stop cron

จะป้องกันไม่ให้งาน cron ทำงานและ

sudo systemctl start cron

จะเปิดใช้งานพวกเขาอีกครั้ง

นอกจากนี้คุณยังสามารถลองใช้anacronแทนcronมันอาจจะง่ายกว่าในการปรับแต่งทั่วโลกในแบบที่เหมาะกับการใช้งานของคุณ


12

ฉันจะพิจารณาสองวิธี

  1. ปล่อยให้การกำหนดเวลาไม่มีการแตะต้อง แต่ให้เรียกใช้cronงานทั้งหมดภายใต้niceและอาจเป็นไปได้ว่าionice:

    0 * * * *    root    ionice -c3 nice /some/command and parameters
    
  2. ไม่อนุญาตcronงานใด ๆในบางช่วงเวลา โปรดจำไว้ว่าผู้ใช้ที่สามารถสร้าง (หรือลบ) ไฟล์ตั้งค่าสถานะสามารถควบคุมวิธีนี้ได้ ซึ่งอาจใช้งานได้หากคุณต้องการมีโหมดเกมที่ตั้งค่าตามต้องการโดยการเพิ่มtouchและrmคำสั่งลงในสคริปต์เริ่มต้นเกมของคุณ (คุณอาจต้องใช้/tmpมากกว่า/var/runแต่เปิดให้ผู้ใช้คนใดก็ได้)

    0 18 * * *      root    touch /var/run/no_cron
    0 19 * * *      root    rm -f /var/run/no_cron
    
    0 * * * *       root    test ! -f /var/run/no_cron && /some/command...
    

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


1
แก้ไข. เหตุใดจึงต้องมีกระบวนการคอขวดเมื่อมี CPU มากมาย ลำดับความสำคัญของระบบปฏิบัติการเริ่มต้นขึ้นเมื่อมีความขาดแคลนไม่ได้โดยพลการ
MSalters

ฉันไม่เชื่อว่าการ-c3 -n7รวมกันนั้นสมเหตุสมผลแล้วอย่างน้อยบน Linux ไม่ได้ใช้งานระดับการตั้งเวลาไม่เคยมีใครจัดลำดับความสำคัญ
Gardenhead

@gardenhead อุ๊ยคุณพูดถูก ฉันใช้-c2 -n7ตัวเอง แต่เมื่อฉันเลิกเรียนเพื่อไม่ได้ใช้งานสำหรับคำตอบนี้ฉันข้ามไปเพื่อลบลำดับความสำคัญ
roaima
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.