Jak zapobiec uruchamianiu zadań CRON w określonym czasie w Debianie? („tryb gry” / „tryb wydajności”)


12

Wygląda na to, jakie logcheck skonfigurować jako zadanie cron i kiedy to proces prowadzony grepprzez logcheckzajmuje około ¼ mojego procesora.

Teraz mam określone czasy, w których potrzebuję pełnej mocy procesora i mój system zajmuje jak najmniej zasobów, z wyjątkiem określonych procesów / (które mógłbym w jakiś sposób określić).

Czy można ustawić mój Debian 9.1 z maszyną KDE w jakimś trybie wydajności (lub „trybie gier”), który uniemożliwia procesom, które nie zostały wyraźnie uruchomione przez użytkownika, zajęcie dużej ilości zasobów systemowych, zmniejsza obciążenie procesów w tle, a co najważniejsze : opóźnia zadania crona, dopóki ten tryb nie zostanie ponownie zatrzymany?


6
Prostym rozwiązaniem nie byłoby uruchomienie logcheck w zadaniu cron, ale napisanie własnego skryptu i uruchomienie go w zadaniu cron. W skrypcie najpierw wykonaj wszystkie potrzebne kontrole, a następnie uruchom logcheck na końcu skryptu, jeśli wszystkie te testy przebiegną pomyślnie.
SauceCode

5
Sprawdź priorytet. Jeśli został obniżony do 19, działa tylko wtedy, gdy procesor nie ma nic innego do roboty.
Thorbjørn Ravn Andersen

Odpowiedzi:


18

Jeśli „określone czasy” nie są ustalone, tzn. Chcesz ręcznie określić, kiedy system wchodzi i wychodzi z „trybu wydajności”, możesz po prostu zatrzymać i uruchomić cron:

sudo systemctl stop cron

zapobiegnie uruchomieniu jakichkolwiek zadań cron, oraz

sudo systemctl start cron

ponownie je włączy.

Możesz również sprawdzić anacronzamiast cron, może być łatwiej dostrajać globalnie w sposób, który pasuje do twoich zastosowań.


12

Rozważę dwa podejścia

  1. Pozostaw harmonogram bez zmian, ale uruchom wszystkie cronzadania poniżej nice, a może nawet ionice:

    0 * * * *    root    ionice -c3 nice /some/command and parameters
    
  2. Nie zezwalaj na żadne cronprace w określonych godzinach. Pamiętaj, że każdy użytkownik, który może utworzyć (lub usunąć) plik flagi, może kontrolować to podejście. Może to działać, jeśli chcesz mieć ustawiony tryb gry na żądanie , dodając polecenia touchi rmdo skryptu uruchamiania gry. (Może być konieczne użycie /tmpzamiast /var/run, ale wtedy jest on trywialnie otwarty dla każdego użytkownika).

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

Po skonfigurowaniu żadne podejście nie wymaga dostępu do konta root. Ponadto możesz z góry zdecydować, które zadania powinny podlegać tej kontroli, a które nie.


1
Poprawny. Po co wąskie gardło proces, gdy jest dużo procesora? Priorytety systemu operacyjnego uruchamiają się, gdy pojawia się niedobór, nie arbitralnie.
MSalters

Nie sądzę, aby ta -c3 -n7kombinacja miała sens, przynajmniej w Linuksie. Bezczynnie klasa szeregowanie ma priorytety.
ogrodnik

@gardenhead ups, masz rację. Używam -c2 -n7siebie, ale kiedy upuściłem klasę w stan bezczynności dla tej odpowiedzi, pominąłem usunięcie priorytetu.
roaima
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.