Làm cách nào để ngăn các công việc định kỳ không được chạy trong thời gian nhất định trong Debian? (một 'chế độ chơi' / 'hiệu suất')


12

Có vẻ như tôi có logcheck được thiết lập như một công việc định kỳ và bất cứ khi nào nó chạy quá trình grepbằng cách logcheckchiếm khoảng CPU CPU của tôi.

Bây giờ tôi có những thời điểm nhất định trong đó tôi cần dung lượng CPU đầy đủ và hệ thống của tôi chiếm ít tài nguyên nhất có thể ngoại trừ các quy trình / quy trình cụ thể (mà tôi có thể chỉ định bằng cách nào đó).

Có thể đặt Debian 9.1 của tôi với máy KDE thành một loại chế độ hiệu suất (hoặc mode Chế độ chơi trò chơi ') để ngăn người dùng không bắt đầu sử dụng nhiều tài nguyên hệ thống, giảm tải quá trình nền và quan trọng nhất : trì hoãn công việc cron cho đến khi chế độ đó bị dừng lại?


6
Một giải pháp đơn giản sẽ không phải là chạy logcheck trong công việc định kỳ, mà thay vào đó là viết một tập lệnh tùy chỉnh và chạy nó trong công việc định kỳ. Trong tập lệnh, trước tiên hãy thực hiện bất kỳ kiểm tra nào bạn cần và sau đó chạy logcheck ở cuối tập lệnh nếu tất cả các kiểm tra đó đều vượt qua.
SauceCode

5
Kiểm tra mức độ ưu tiên. Nếu nó đã được giảm xuống còn 19 thì nó chỉ chạy khi cpu không có gì khác để làm.
Thorbjørn Ravn Andersen

Câu trả lời:


18

Nếu một số thời điểm nhất định mà không cố định, tức là bạn muốn chỉ định thủ công khi hệ thống của bạn vào và rời khỏi chế độ hiệu suất của chế độ, thì bạn chỉ cần dừng và bắt đầu cron:

sudo systemctl stop cron

sẽ ngăn mọi công việc định kỳ chạy và

sudo systemctl start cron

sẽ kích hoạt lại chúng.

Bạn cũng có thể kiểm tra anacronthay vì cron, có thể dễ dàng điều chỉnh toàn cầu hơn theo cách phù hợp với mục đích sử dụng của bạn.


12

Tôi sẽ xem xét hai cách tiếp cận

  1. Để lại lịch trình không bị ảnh hưởng nhưng chạy tất cả các croncông việc theo nice, và thậm chí có thể ionice:

    0 * * * *    root    ionice -c3 nice /some/command and parameters
    
  2. Không cho phép bất kỳ croncông việc trong thời gian nhất định. Hãy nhớ rằng bất kỳ người dùng nào có thể tạo (hoặc xóa) tệp cờ đều có thể kiểm soát phương pháp này. Điều đó có thể hoạt động nếu bạn muốn có một chế độ chơi trò chơi được thiết lập theo yêu cầu , bằng cách thêm touchrmcác lệnh vào tập lệnh khởi động trò chơi của bạn. (Bạn có thể cần phải sử dụng /tmphơn là /var/run, nhưng sau đó nó mở một cách tầm thường cho bất kỳ người dùng nào.)

    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...
    

Sau khi thiết lập, không có cách tiếp cận nào yêu cầu quyền truy cập root. Ngoài ra, bạn có thể quyết định trước những công việc nào phải chịu sự kiểm soát này và công việc nào không phải.


1
Chính xác. Tại sao tắc nghẽn một quá trình khi có sẵn nhiều CPU? Các ưu tiên của hệ điều hành bắt đầu khi có sự khan hiếm, không phải tùy tiện.
MSalters

Tôi không tin sự -c3 -n7kết hợp này có ý nghĩa, ít nhất là trên Linux. Các lớp lập lịch nhàn rỗi không có ưu tiên.
vườn

@gardenhead oops bạn nói đúng. Tôi sử dụng -c2 -n7bản thân mình nhưng khi tôi bỏ lớp học để nhàn rỗi cho câu trả lời này, tôi đã bỏ qua để loại bỏ ưu tiên.
roaima
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.