NTFS 압축을 켜면 CPU로드가 왜 그렇게 낮습니까? 장면 뒤에서 SSE4.2 명령어를 사용합니까?


4

Windows 7 x64를 실행하는 16 진수 코어 Xeon X5650이 있습니다.

현재 다음 명령을 사용하여 각각 3 개의 NTFS 하드 드라이브 (각 2TB)를 동시에 압축하고 있습니다.

compact e: /i /c /s
compact f: /i /c /s
compact g: /i /c /s

합리적인 압축률을 얻습니다 : 최대 40 : 1, 일반적으로 2 : 1.

결과 CPU로드는 약 3 %입니다

CPU 부하가 왜 그렇게 낮은 지 아는 사람이 있습니까?

Win7 실시간 압축 / 압축 해제 커널이 SSE3 또는 SSSE3 또는 SSE4.2 명령을 사용하고 있는지 아는 사람이 있습니까?


또한 추가해야합니다. 가상 하드 드라이브에 사용되는 파일이 NTFS 압축 된 경우 VMware는 개처럼 실행됩니다. 시스템의 다른 대부분의 장소에서는 문제가없는 것 같습니다.
Contango

답변:


4

여러 요인 때문에 CPU 사용량이 너무 낮을 것으로 예상하지만 압축 알고리즘은 높은 압축률이 아닌 속도를 위해 설계되었다는 점을 명심하십시오.

여기서 근본적인 문제는 수천 개의 작은 파일 또는 수천 GB의 엄청난 파일을 압축하는지 여부입니다.

2MB 미만의 파일을 압축하는 경우 파일을 압축하는 데 걸리는 대부분의 시간이 파일 시스템에서 파일을 찾는 데 필요한 작업에 걸리고 하드 드라이브가 데이터를 제공 한 다음 압축을 작성해야합니다 그런 다음 작은 파일부터 반복하십시오. 압축 알고리즘은 현대 컴퓨터에서 약 40-50MB / s를 처리 할 수 ​​있습니다 (예상하지만 확실하지는 않습니다). 따라서 하드 드라이브 탐색 및 데이터 전송 시간은 실제로 해당 파일의 제한 요소이며 압축 시간은 거의 없어야합니다.

파일이 클수록 CPU 사용량이 높아질 것입니다. 시스템의 큰 디렉토리를 압축하도록 지시하면 적어도 1 코어 팝업에서 최대 50 %의 CPU 사용량 (8 코어 프로세서의 총 CPU 총 8-10 %)을 볼 수 있습니다 ...

하드 드라이브 탐색 시간이 여기서 문제라고 생각합니다. 그렇지 않으면 압축하는 동안 작동 하는 코어 를 구체적으로 볼 필요 가 있습니다. 압축 루틴은 한 번에 하나의 스레드에서만 사용할 수 있습니다. 이것이 사실인지 의심 할 것입니다.


답변 해주셔서 감사합니다. 병목 현상은 거의 전적으로 HD에 있다고 생각합니다. 이는 압축으로 인해 속도가 빨라질 것입니다. 핵심은 하드웨어 가속 압축을 위해 SSE4.2와 같은 것을 지원하는 CPU가 있다는 것입니다.
Contango

3

예 . Intel i7 및 Intel Xeon X5650에 설정된 새로운 SSE4.2 명령을 사용하여 압축 속도를 높일 수 있습니다. 내 CPU 사용량이 3 %이고 동시에 3 개의 2TB 하드 드라이브를 압축한다는 점을 감안할 때 Win7은 NTFS 섹터 레벨 압축을 위해 SSE4.2를 거의 확실히 사용 하고 있습니다.

참조 하드웨어 기반 GZIP 압축, 토니 여름 등으로 전력 절감을. Alcom, Comtech EF Data Corporation의 AHA 제품 그룹 .


3

아니오 아니오 아니오, 관련된 SSE4가 없습니다. SSE4 명령어 중 어느 것도 NTFS에서 사용되는 LZ (w / 77) 방법을 지원할 수 없습니다. 압축으로 CPU를 포화 시키기에는 디스크 속도가 너무 느려 일반적으로 좋습니다. 압축 된 디스크 파일로 살 수 있습니다. 거대한 파일에서 약간의 변경을 수행하면 문제가 시작됩니다. 모든 파일을 다시 읽고 압축합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.