「apt-get upgrade」で使用するリソースを減らす方法は?


26

sudo apt-get upgradeローエンドラップトップで多くのパッケージを実行すると、知覚できるほどのシステムのスローダウンが発生し、場合によっては最大3秒の画面がフリーズします。

このジョブを非常に低い優先度としてマークする方法、つまり、CPU、MEM、およびHDDをほとんど使用しない方法はありますか?apt-get upgrade終了までに2時間長くなるかどうかはあまり気にしません。アップグレード中に中断することなく作業を続けたいだけです。

回答:


26

このコマンドniceを使用して、プロセスのCPUスケジューリング優先順位を操作できます。このコマンドは、プロセスに-20(最も重要)から+19(最も重要ではない)の「適切な」値を割り当てます。ルートは任意の値を割り当てることができ、他のユーザーは正の値のみを割り当てます(重要度は低い)。デフォルト値は0です。

nice -n <niceness> <command>

apt-getコマンドの優先度を最小値に設定するには、次のコマンドを使用できます

sudo nice -n 19 apt-get upgrade

すでに実行中のプロセスの優先度を設定するには、次のコマンドreniceを使用できます。

renice -n <niceness> -p <pid>

編集:ioniceコマンドについて言及してくれた@Davidに感謝します。これにより、ディスクI / Oの優先順位を操作できます。プロセスを3つの異なるクラスに配置できます。

  • アイドルは、現時点で他のプロセスが要求していない場合にのみ、プロセスディスク時間を提供します。
  • ベストエフォート(デフォルトクラス)。これにより、0〜7の優先順位を割り当てることができます。0は最も重要で、7は最も重要ではありません。-n 7優先レベルとして割り当ててみてください。
  • リアルタイムプロセスは他のすべてのプロセスの前に処理され、他のプロセスのディスクI / Oを必要に応じてすぐに中断します。注意して使用してください!

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
デビッドルバウアー

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以上の優先順位のみを許可します。apt-getはルートとして起動されます。
s3lph

1
@David回答にioniceを追加しました。
s3lph
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.