Jak sprawić, by `apt-get upgrade` zużywał mniej zasobów?


26

Kiedy uruchamiam sudo apt-get upgradez dużą ilością pakietów na moim słabszym laptopie, odczuwalne jest spowolnienie systemu, czasem z zawieszeniem się ekranu do 3 sekund.

Czy jest jakiś sposób na oznaczenie tego zadania jako bardzo niskiego priorytetu, tj. Użycie bardzo małej ilości procesora, pamięci MEM i dysku twardego? Nie obchodzi mnie to, czy apt-get upgradeukończenie go potrwa dwie godziny, chcę po prostu kontynuować pracę bez zakłóceń podczas aktualizacji.

Odpowiedzi:


26

Polecenia nicemożna używać do manipulowania priorytetami planowania procesora procesora . Polecenie przypisuje do procesu wartość „łagodności” od -20 (najważniejsze) do +19 (najmniej ważne). Root może przypisać dowolną wartość, inni tylko pozytywne (niewielkie znaczenie). Wartość domyślna to 0.

nice -n <niceness> <command>

Aby ustawić priorytet polecenia apt-get na najmniejszą wartość, możesz użyć polecenia

sudo nice -n 19 apt-get upgrade

Aby ustawić priorytet już uruchomionego procesu, renicemożna użyć polecenia:

renice -n <niceness> -p <pid>

Edycja: Podziękowania dla @David za wspomnienie ionicepolecenia, które pozwala manipulować priorytetem we / wy dysku . Może podzielić proces na trzy różne klasy:

  • Bezczynność podaje czas dysku procesowego tylko wtedy, gdy żaden inny proces go nie zażąda.
  • Najlepszy wysiłek (klasa domyślna). Pozwala to przypisać priorytety od 0 do 7, gdzie 0 jest najważniejsze, a 7 najmniej. Możesz spróbować przypisać -n 7jako poziom priorytetu.
  • Procesy w czasie rzeczywistym są obsługiwane przede wszystkim, zawieszając dyskowe operacje we / wy dla innych procesów, gdy tylko będą tego potrzebować. Używaj ostrożnie!

IOnice łączy składnię nice i renice:

ionice [-c class] [-n level] command             #To start a new process
ionice [-c class] [-n level] -p pid              #To change a running process

Oba polecenia można łączyć, np

sudo ionice -n 7 nice -n 19 apt-get upgrade      #Omitting the -c switch will assign Best-effort
sudo nice -n 19 ionice -n 7 apt-get upgrade
nice -n 19 ionice -n 7 sudo apt-get upgrade
...

6
Dziwię się, że uzyskało tak wiele pozytywnych opinii. Aktualizacja apt-get jest związana z IO!
Joshua,

3
jak o ionice?
David LeBauer,

1
Tak więc, aby wyjaśnić, sudotwoje polecenie nie jest dla nice, ale dla apt-getsiebie? Wygląda na to, że mi nice -n 19 sudo apt-get upgradeteż pasuje. Czy jest jakaś ważna różnica?
wchargin

1
@WChargin sudo nice apt-getdziała ładnie jako root i pozwoli na ustawienie niższych priorytetów niż 0. apt-get nadal będzie działał jako root. nice sudo apt-getbędzie działał ładnie jak bieżący użytkownik, a tym samym zezwoli tylko na priorytety wyższe lub równe 0. apt-get zostanie uruchomiony jako root.
s3lph

1
@David Dodałem jonice do mojej odpowiedzi.
s3lph
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.