2016-12-13 2 views
0

pigz를 사용하여 약 50GB의 대용량 디렉토리를 압축하고 있으며, RedHat와 함께 ec2 인스턴스가 있으며, 인스턴스 유형은 m4.xlarge입니다.이 인스턴스는 4 개의 CPU를 가지고 있으며, 압축으로 인해 모든 CPU가 소모 될 것으로 예상됩니다. 더 나은 성능을 제공합니다. 그러나 그것은 나의 기대를 충족시키지 못했습니다.pigz를 최적화하는 방법?

내가 사용하고있는 명령 : 압축이 실행 중일 때

tar -cf - lager-dir | pigz > dest.tar.gz

하지만, 내 CPU 상태를 확인하는 mpstat -P ALL를 사용, 결과가 다른 3 개의 CPU 유휴 %을 많이 보여줍니다에만 거의 2 %는 각 CPU에 대해 사용자 공간 프로세스에서 사용됩니다.

pigz가 CPU의 10 % 미만 만 사용하는지 확인하려면 top을 사용해 보았습니다.

-p 10으로 시도하여 프로세스 수를 늘리면 출력 파일이 2.7GB에 도달 할 때 몇 분 동안 사용량이 많지만 사용량이 감소합니다.

모든 CPU가 압축에만 사용되므로 최상의 성능을 얻기 위해 모든 리소스를 최대한 활용하고 싶습니다. 어떻게해야합니까?

답변

0

파일 압축 응용 프로그램이 CPU 바인딩되지 않은 경우 대부분 연속적인 I/O 바인딩입니다.

mpstat를 사용하여 top 또는 mpstat를 사용하여 시스템이 iowait ('wa')에서 소비하는 시간의 비율을 볼 수 있습니다 (기본 출력의 일부가 아닌 경우 옵션 맨페이지를 확인하십시오) .

내가 맞다면 시스템이 돼지를 실행하지 않는 대부분의 시간은 입출력을 기다리는 데 소비됩니다.

디스크 IO를 표시 할 수있는 iostat를 사용하여 추가로 조사 할 수도 있습니다. 읽기와 쓰기 사이의 비율은 압축률에 따라 시간이 지남에 따라 달라 지지만 결합 된 IO는 상당히 일정해야합니다. 여기서는 아마존의 스토리지 프로비저닝이 이전과 같이 일관성있는 I/O를 제공한다고 가정합니다.