Як змусити "apt-get upgrade" використовувати менше ресурсів?


26

Коли я sudo apt-get upgradeпрацюю з великою кількістю пакунків на своєму ноутбуці низького класу, я отримую помітне уповільнення роботи системи, іноді із зависанням екрана до 3 секунд.

Чи є якийсь спосіб відзначити цю роботу дуже низьким пріоритетом, тобто використовувати дуже мало CPU, MEM та HDD? Мені дуже не байдуже, чи apt-get upgradeзакінчить це дві години довше, я просто хочу продовжувати працювати без збоїв під час оновлення.

Відповіді:


26

Команда niceможе використовуватися для маніпулювання пріоритетами планування процесора процесора . Команда призначає процесу "niceness" від -20 (найважливіше) до +19 (найменш важливе). Корінь може присвоювати будь-яке значення, інші користувачі лише позитивні (незначне значення). Значення за замовчуванням - 0.

nice -n <niceness> <command>

Щоб встановити пріоритет команди apt-get на найменше значення, ви можете використовувати команду

sudo nice -n 19 apt-get upgrade

Щоб встановити пріоритет уже запущеного процесу, reniceможна використовувати команду :

renice -n <niceness> -p <pid>

Редагування: Дякуємо @David за згадану ioniceкоманду, яка дозволяє вам маніпулювати пріоритетом вводу / виводу диска . Він може ставити процес у три різні класи:

  • У режимі очікування надається час процесу на диску, якщо жоден інший процес не вимагає цього.
  • Найкращі зусилля (клас за замовчуванням). Це дозволяє призначити пріоритети від 0 до 7, де 0 є найважливішим, а 7 - найменшим. Ви можете спробувати призначити -n 7як рівень пріоритету.
  • Процеси в режимі реального часу обробляються раніше всього іншого, призупиняючи введення / виведення диска для інших процесів, як тільки вони вимагають цього для себе. Використовуйте обережно!

IOnice поєднує синтаксис nice і renice:

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

Обидві команди можна комбінувати, наприклад

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
Я здивований, що це отримало так багато відгуків. apt-get оновлення пов'язане з IO!
Джошуа

3
як щодо ionice?
David LeBauer

1
Отже, для уточнення, команда sudoу вашій команді не для nice, а для apt-getсебе? Здається, що nice -n 19 sudo apt-get upgradeпрацює і для мене. Чи є якась важлива різниця?
wchargin

1
@WChargin sudo nice apt-getпрацює добре як root і дозволить встановити нижчі пріоритети, ніж 0. apt-get все ще буде працювати як root. nice sudo apt-getбуде працювати приємно, як поточний користувач, і таким чином дозволятиме лише пріоритети, що перевищують 0 або дорівнюватимуть 0. apt-get буде запускатися як root.
s3lph

1
@David Я додав ionice до своєї відповіді.
s3lph
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.