Làm thế nào để làm cho `apt-get nâng cấp` sử dụng ít tài nguyên hơn?


26

Khi tôi chạy sudo apt-get upgradevới rất nhiều gói trên máy tính xách tay cấp thấp của mình, tôi bị chậm hệ thống, đôi khi có màn hình đóng băng tối đa 3 giây.

Có cách nào để đánh dấu công việc này là mức độ ưu tiên rất thấp, tức là sử dụng rất ít CPU, MEM và HDD? Tôi thực sự không quan tâm nếu nó sẽ làm cho apt-get upgradehai giờ nữa để hoàn thành, tôi chỉ muốn tiếp tục làm việc mà không bị gián đoạn trong quá trình nâng cấp.

Câu trả lời:


26

Lệnh nicecó thể được sử dụng để thao tác ưu tiên lập lịch trình CPU . Lệnh gán giá trị "độ đẹp" từ -20 (quan trọng nhất) đến +19 (ít quan trọng nhất) cho quy trình. Root có thể gán bất kỳ giá trị nào, người dùng khác chỉ những người tích cực (tầm quan trọng nhỏ). Giá trị mặc định là 0.

nice -n <niceness> <command>

Để đặt mức độ ưu tiên của lệnh apt-get thành giá trị nhỏ nhất, bạn có thể sử dụng lệnh

sudo nice -n 19 apt-get upgrade

Để đặt mức độ ưu tiên của một quy trình đã chạy, lệnh renicecó thể được sử dụng:

renice -n <niceness> -p <pid>

Chỉnh sửa: Cảm ơn @David đã đề cập đến ionicelệnh, cho phép bạn thao tác ưu tiên I / O trên đĩa . Nó có thể đặt một quá trình thành ba lớp khác nhau:

  • Nhàn rỗi chỉ cung cấp cho thời gian đĩa quá trình, nếu không có quá trình khác yêu cầu nó tại thời điểm này.
  • Nỗ lực tốt nhất (lớp mặc định). Điều này cho phép bạn chỉ định mức độ ưu tiên từ 0 đến 7, trong đó 0 là quan trọng nhất và 7 ít nhất. Bạn có thể thử chỉ định -n 7là mức độ ưu tiên.
  • Các quy trình thời gian thực được xử lý trước mọi thứ khác, tạm dừng I / O đĩa cho các quy trình khác, ngay khi chúng yêu cầu nó cho chính chúng. Sử dụng cẩn thận!

IOnice kết hợp cú pháp của đẹp và đổi mới:

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

Cả hai lệnh có thể được kết hợp, ví dụ

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
Tôi ngạc nhiên khi điều này có rất nhiều upvote. nâng cấp apt-get bị ràng buộc IO!
Joshua

3
làm thế nào về ionice?
David LeBauer

1
Vì vậy, để làm rõ, sudolệnh của bạn không phải là cho nice, mà là cho apt-getchính nó? Có vẻ như điều đó nice -n 19 sudo apt-get upgradecũng làm việc cho tôi. Có sự khác biệt quan trọng?
wchargein

1
@WChargin sudo nice apt-getchạy tốt khi root và sẽ cho phép đặt mức độ ưu tiên thấp hơn 0. apt-get vẫn sẽ chạy dưới quyền root. nice sudo apt-getsẽ chạy tốt như người dùng hiện tại và do đó chỉ cho phép mức độ ưu tiên cao hơn hoặc bằng 0. apt-get sẽ được bắt đầu với quyền root.
s3lph

1
@David Tôi đã thêm ionice vào câu trả lời của tôi.
s3lph
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.