'apt-get upgrade'으로 적은 리소스를 사용하는 방법은 무엇입니까?


26

sudo apt-get upgrade저가형 랩톱에서 많은 패키지를 실행 하면 인식 할 수있는 시스템 속도가 느려지고 때로는 최대 3 초의 화면이 정지됩니다.

이 작업을 매우 낮은 우선 순위로 표시 할 수있는 방법이 있습니까 (예 : CPU, MEM 및 HDD가 매우 적습니까) apt-get upgrade완료하는 데 2 시간이 더 걸릴지에 대해서는 신경 쓰지 않으며 업그레이드 중에 중단없이 계속 작업하고 싶습니다.

답변:


26

이 명령 nice은 프로세스 CPU 스케줄링 우선 순위 를 조작하는 데 사용될 수 있습니다 . 이 명령은 프로세스에 -20 (가장 중요)부터 +19 (가장 중요)까지 "niceness"값을 지정합니다. Root는 모든 값을 지정할 수 있으며 다른 사용자에게는 긍정적 인 값만 지정할 수 있습니다 (중요도). 기본값은 0입니다.

nice -n <niceness> <command>

apt-get 명령의 우선 순위를 최소값으로 설정하려면 명령을 사용할 수 있습니다

sudo nice -n 19 apt-get upgrade

이미 실행중인 프로세스의 우선 순위를 설정하기 위해 다음 명령을 renice사용할 수 있습니다.

renice -n <niceness> -p <pid>

편집 : ionice명령 을 언급 한 @David 덕분에 디스크 I / O 우선 순위 를 조작 할 수 있습니다 . 프로세스를 세 가지 다른 클래스로 넣을 수 있습니다.

  • 유휴 상태 인 다른 프로세스가없는 경우 유휴 상태 는 프로세스 디스크 시간 만 제공합니다.
  • 최선의 노력 (기본 클래스). 이를 통해 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 제한입니다!
Joshua

3
방법은 ionice?
David LeBauer

1
그래서 분명히하기 위해, sudo당신의 명령은에 대한 nice것이 아니라 apt-get그 자체에 대한 것입니까? 그것은 nice -n 19 sudo apt-get upgrade또한 나를 위해 작동하는 것 같습니다 . 중요한 차이점이 있습니까?
wchargin

1
@WChargin sudo nice apt-get은 루트로 훌륭하게 실행되며 우선 순위를 0보다 낮게 설정할 수 있습니다. apt-get은 여전히 ​​루트로 실행됩니다. nice sudo apt-get현재 사용자처럼 잘 실행되므로 0 이상의 우선 순위 만 허용합니다. apt-get은 루트로 시작됩니다.
s3lph

1
@David 나는 대답에 ionice를 추가했습니다.
s3lph
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.