Bagaimana cara membuat `apt-get upgrade` menggunakan lebih sedikit sumber daya?


26

Ketika saya menjalankan sudo apt-get upgradedengan banyak paket pada laptop low-end saya, saya mendapatkan perlambatan sistem yang jelas, kadang-kadang dengan pembekuan layar hingga 3 detik.

Apakah ada cara untuk menandai pekerjaan ini sebagai prioritas yang sangat rendah, yaitu menggunakan sangat sedikit CPU, MEM dan HDD? Saya tidak terlalu peduli apakah itu akan membuat apt-get upgradedua jam lebih lama untuk selesai, saya hanya ingin tetap bekerja tanpa gangguan selama upgrade.

Jawaban:


26

Perintah niceini dapat digunakan untuk memanipulasi prioritas proses penjadwalan CPU . Perintah memberikan nilai "kebaikan" dari -20 (paling penting) hingga +19 (paling tidak penting) untuk proses. Root dapat memberikan nilai apa pun, pengguna lain hanya yang positif (tidak penting). Nilai standarnya adalah 0.

nice -n <niceness> <command>

Untuk mengatur prioritas perintah apt-get ke nilai terkecil, Anda dapat menggunakan perintah

sudo nice -n 19 apt-get upgrade

Untuk mengatur prioritas proses yang sudah berjalan, perintah renicedapat digunakan:

renice -n <niceness> -p <pid>

Sunting: Terima kasih kepada @David karena menyebutkan ioniceperintah, yang memungkinkan Anda memanipulasi prioritas I / O disk . Itu dapat menempatkan proses ke dalam tiga kelas yang berbeda:

  • Menganggur hanya memberikan waktu proses disk, jika tidak ada proses lain mengklaim saat ini.
  • Upaya terbaik (kelas default). Ini memungkinkan Anda untuk menetapkan prioritas dari 0 hingga 7, di mana 0 paling penting dan 7 paling tidak. Anda dapat mencoba menetapkan -n 7sebagai tingkat prioritas.
  • Realtime proses ditangani sebelum segala sesuatu yang lain, menangguhkan disk I / O untuk proses lainnya, segera setelah mereka butuhkan untuk diri mereka sendiri. Gunakan dengan hati-hati!

IOnice menggabungkan sintaksis nice dan renice:

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

Kedua perintah dapat digabungkan, mis

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
Saya terkejut ini mendapat begitu banyak upvotes. upgrade apt-get terikat IO!
Joshua

3
bagaimana ionice?
David LeBauer

1
Jadi, untuk memperjelas, sudodalam perintah Anda bukan untuk nice, tetapi untuk apt-getdirinya sendiri? Sepertinya itu nice -n 19 sudo apt-get upgradejuga berfungsi untuk saya. Apakah ada perbedaan penting?
wchargin

1
@WChargin sudo nice apt-getberjalan baik sebagai root dan akan memungkinkan pengaturan prioritas yang lebih rendah dari 0. apt-get akan tetap berjalan sebagai root. nice sudo apt-getakan berjalan dengan baik sebagai pengguna saat ini, dan dengan demikian hanya mengizinkan prioritas yang lebih tinggi dari atau sama dengan 0. apt-get akan dimulai sebagai root.
s3lph

1
@ David Saya menambahkan ionice ke jawaban saya.
s3lph
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.