최소 CPU 비율로 파일을 압축하는 방법은 무엇입니까?

최소 CPU 비율로 파일을 압축하는 방법은 무엇입니까?

파일을 압축하기 위해 bzip2를 사용하고 있는데 프로세스가 CPU의 100% 이상을 차지하고 있습니다. 최소 CPU 비율로 bzip2를 실행할 수 있는 방법이 있습니까?

답변1

이 프로세스가 시스템의 다른 프로세스를 방해합니까? bzip2에서 사용되는 CPU를 제한하는 이유는 무엇입니까?

nice다음 명령을 사용하여 프로세스의 우선순위를 변경할 수 있습니다 .

$ nice -n 19 bzip2 <file>

또한 bzip2압축 수준을 낮추어 볼 수도 있습니다.

$ bzip2 -1 <file>

답변2

권장사항: 우선순위 사용

@EEAA의 답변 외에도 다른 프로세스의 영향을 최소화하기 위해 bzip 프로세스에 최대 낮은 우선 순위를 부여하려면 ionice추가로 . 이는 IO 스케줄러(커널의 기본값이지만 설치에 따라 조정될 수 있음)를 사용할 때만 유용합니다 ionice. 또는 IO 스케줄러를 사용하는 경우 영향이 없습니다.CFQionicedeadlinenoop

사용 중인 IO 스케줄러를 확인하려면 다음을 수행하세요.

cat /sys/block/<DEVICE>/queue/scheduler

<DEVICE>하드 드라이브 장치는 어디에 있습니까?sda

지금은 ionice가장 낮은 IO 우선순위인 클래스 3을 설정하려고 합니다. 이것을 함께 결합할 수 있습니다 nice:

$ nice -n 19 ionice -c3 bzip2 <file>

Tom과 EEAA가 설명하듯이, 그것만으로도 충분합니다. 커널은 다른 프로세스에 CPU나 IO가 필요하지 않을 때 bzip이 최대한 빠르게 실행되도록 보장합니다. 그러나 필요한 경우 다른 프로세스에 우선순위를 부여합니다. 이는 권장되는 선택입니다.

대안: cpulimit - CPU 사용량 제한

이제 bzip에서 "CPU 제한"을 계속 사용할 수 있습니다. 내 선택은 아니지만, 사용해 보고 싶거나 더 마음에 든다면 사용하면 된다 cpulimit. 그러나 일반적으로 Linux에서는 기본적으로 패키지되거나 설치되지 않습니다. 그래서 설치해야합니다.닉 크래프트좋은 문서가 있습니다설치 및 사용 방법 cpulimit.
공식 웹사이트는 다음과 같습니다:http://cpulimit.sourceforge.net/

관련 정보