'Apt-get upgrade' için nasıl daha az kaynak kullanılır?


26

Ben çalıştırdığınızda sudo apt-get upgradebenim alt uç dizüstü paketlerin bir sürü, ben en fazla 3 saniye ekran donuyor bazen, algılanabilir bir sistem yavaşlama olsun.

Bu işi çok düşük öncelikli olarak işaretlemenin herhangi bir yolu var mı, yani çok az CPU, MEM ve HDD kullanın? Bitmesi apt-get upgradeiki saat daha uzun sürecekse umrumda değil , sadece yükseltme sırasında herhangi bir kesinti olmadan çalışmaya devam etmek istiyorum.

Yanıtlar:


26

Komut nice, işlem CPU planlama önceliklerini değiştirmek için kullanılabilir . Komut, işleme -20 (en önemli) ile +19 (en az önemli) arasında bir "şıklık" değeri atar. Kök herhangi bir değeri atayabilir, diğer kullanıcılara yalnızca pozitif değerler (önemsiz). Varsayılan değer 0'dır.

nice -n <niceness> <command>

Bir apt-get komutunun önceliğini en düşük değere ayarlamak için, komutu kullanabilirsiniz.

sudo nice -n 19 apt-get upgrade

Çalışmakta olan bir işlemin önceliğini ayarlamak için komut renicekullanılabilir:

renice -n <niceness> -p <pid>

Düzenleme: Disk G / Ç önceliğiniionice değiştirmenize izin veren komuttan bahsettiğiniz için @David'e teşekkürler . Bir süreci üç farklı sınıfa koyabilir:

  • Boşta , şu anda başka hiçbir işlem talep etmediğinde işlem disk süresini yalnızca verir.
  • En iyi çaba (varsayılan sınıf). Bu, 0'dan 7'ye öncelikler atamanıza izin verir, burada 0 en önemli ve en az 7'dir. -n 7Öncelik seviyesi olarak atamayı deneyebilirsiniz .
  • Gerçek zamanlı işlemler her şeyden önce gerçekleştirilir, disk G / Ç'yi diğer işlemler için askıya alır, kendileri için gerekli olan en kısa sürede. Dikkatli kullanın!

IOnice, nice ve renice'nin sözdizimini birleştirir:

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

Her iki komut birleştirilebilir, örneğin

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
Bu kadar çok oy almasına şaşırdım. apt-get upgrade IO'ya bağlı!
Joshua

3
nasıl ionice?
David LeBauer

1
Yani, açıklığa kavuşturmak sudoiçin nice, emrindeki emir sizin için değil, onun için apt-getmi? Görünüşe göre nice -n 19 sudo apt-get upgradebenim için de işe yarıyor. Önemli bir fark var mı?
wchargin

1
@WChargin sudo nice apt-getroot olarak iyi çalışır ve 0'dan daha düşük öncelikleri belirlemeye izin verir. Apt-get hala root olarak çalışacaktır. nice sudo apt-getgeçerli kullanıcı olarak iyi çalışır ve bu nedenle yalnızca 0'dan büyük veya ona eşit olan önceliklere izin verir. apt-get root olarak başlatılır.
s3lph

1
@David Cevabımı iyonice ekledim.
s3lph
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.