디스크 정리에 많은 시간과 CPU가 필요한 이유는 무엇입니까?


29

호기심 질문입니다. 디스크 정리는 꽤 오랫동안 내 코어 중 하나의 100 %를 사용하고 있습니다. 특히 Windows 업데이트 정리에 많은 시간을 소비하는 것 같습니다.

파일을 삭제하는 것이 왜 그렇게 집중적 인 활동인지 이해가되지 않습니다. 특히 삭제할 수있는 것을 계산하는 데 많은 시간을 소비했기 때문에 특히 그렇습니다.

디스크 정리에 많은 시간과 CPU가 필요한 이유는 무엇입니까? 그렇게 집중적으로하는 것은 무엇입니까?

4 개의 코어 중 2 개가 최대가되었습니다

답변:


20

Windows는 제거 할 수없고 diffs에 사용되지 않는 교체 된 업데이트 광고 압축 파일을 제거하여 WinSxS 폴더를 압축합니다. 이것은 많은 CPU 전력을 소비하므로 CPU 사용량이 많은 이유입니다.

당신은 할 수 xperf / WPA와 CPU 사용량을 분석하고 이를 확인 할 수 있습니다.


가장 오래된 파일을 압축 할 때 절약 된 공간도 계산하지 않습니까 (최근에 열지 않은 파일)?
Justin Goldberg

좋은 비디오! 그 도구를 확실히 확인할 것입니다 : D
Svish

@Svish 당신은 이것을 확인 했습니까? 질문에 대답이 있습니까?
magicandre1981

4

Windows Updates Cleanup이 거의 100 % CPU 사용을 차지한다는 것을 확인할 수 있습니다. WinSxS 압축 및 업데이트 재 통합에 관한 것입니다.

Windows 정리 100 % CPU 사용량

Windows 설치 후 처음으로 정리를 시작했으며 50 %를 완료하는 데 2 ​​시간이 걸렸습니다. 그래프에서 볼 수 있듯이 처음에는 디스크에서 작은 파일을 많이 읽거나 (두 번째 그래프) 압축을 위해 CPU를 100 % 사용한 후 등이 있습니다.


2

질문에 불을 피우기 위해 불변의 가상 머신에서 다음 단계를 수행했습니다.

  1. SystemRescueCD를 부팅하고 Windows 파티션을 마운트하십시오
  2. 디스크의 모든 파일을 로그 파일에 나열합니다 (1 분 미만).
  3. Windows로 재부팅
  4. 하자 cleanmgr그 일을하고 시간을주의 깊게 살펴 (8 시간 이상)
  5. SystemRescueCD로 재부팅하고 Windows 파티션을 마운트하십시오
  6. 디스크의 모든 파일을 다른 로그 파일에 나열합니다 (1 분 미만).
  7. 변경 불가능한 가상 머신 재설정
  8. Windows로 재부팅
  9. FOR / F ...를 수행하여 관리 명령 프롬프트 (cmd)에서 이러한 파일을 삭제하고 시간을 기록하십시오 (5 분 미만).

Linux SystemRescueCd로 재부팅하여 모든 파일을 나열하고 Window에서 찾은 파일을 나열하고 가능한 한 빨리 이러한 목록을 수행 할 수 있습니다 (alc 검사 등 없음).

또한 cleanmgri에서 검색이 끝난 후 시간 만 계산합니다 (검색 자체도 6 시간 이상 걸렸습니다).

따라서 파일을 삭제하는 것은 병목이 아닙니다 (삭제 자체에는 5 분이 필요하지만 cleanmgr8 시간 이상이 걸립니다).

호스트가 Linux이기 때문에 자체 삭제가 너무 빠를 수 있습니다.이 속도는 Linux가 가상 시스템 (24GiB)의 디스크로 사용되는 고정 크기 파일에 모든 쓰기를 캐시하기 때문에 발생합니다. RAM과 나는 Windows 16GiB에 SWAP을 사용하지 않아도 PAGEFILE.SYS; 또한 Linux는 RAM에 전체 파일을 보유 할 수 있습니다 (RAM에서 해당 파일로 테스트하여 삭제 시간이 많이 걸리지 만 cleanmgr시간이 드롭되지는 않습니다).

예, 가상 디스크를 RAM에 완전히 넣으면 cleanmgr시간이 떨어지지 않지만 파일을 수동으로 삭제하면 시간이 조금 줄어 듭니다 (64GiB의 RAM이 있으면 Linux 쓰기 캐시가 훌륭합니다).

테스트를위한 구성 :

  • 호스트 : Linux 64 비트는 64GiB RAM이 장착 된 AMD Deca Core 5GHz와 2 개의 WD VelociRaptor HDD가 장착 된 Sata Raid0 컨트롤러 인 하드웨어를 통해 배포됩니다 (1GiB / s 근처의 결합 된 쓰기 쓰기 속도와 4K의 랜덤 쓰기 쓰기를 유지할 수 있음) 300MiB / s); 비용은> 10 만 유로입니다
  • 게스트 : 16GiB의 램과 24GiB의 가상 디스크가있는 Windows 10 홈

테스트 1 : 물리적 하드 디스크에 24GiB 가상 디스크 보유 테스트 2 : Linux 호스트 RAM에 24GiB 가상 디스크 보유

cleanmgr삭제하는 각 파일마다 Windows 레지스트리에서 무언가를하고있는 것이 두렵습니다 ( 레지스트리에 대한 액세스가 매우 낮습니다).

내가 가진 모니터 :

  • Linux 호스트 및 Windows 게스트의 CPU 사용량 (대부분 0 % ~ 1 %, 5 % 파이크, 더 이상 없음)
  • Linux 호스트의 HDD 사용량 ( cleanmgr작동 중 2 %의 파이크와 함께 0 % 근처 ), Linux 디스크 캐시는 dato가 실제 디스크로 전송되는 것을 방지합니다.
  • Windows 게스트에서의 HDD 사용량 ( cleanmgr28 %의 파이크와 함께 작업 할 때 대부분 2 % ~ 15 %)

그래서 명확하게 cleanmgr발견 할 수없는 일, 어쩌면 수면 시간을 많이하고있다? 레지스트리에 액세스하는 경우 Windows 모니터에서 사용하지 않는 CPU, 사용되지 않는 HDD (레지스트리가 RAM에 있음) 등으로 인해 레지스트리에 액세스하는 데 1 초 이상 걸릴 수 있습니다. 레지스트리를 열고 각 작업마다 레지스트리를 닫아서 HK *를 열어 놓아 레지스트리에 액세스 할 수있는 고유 한 프로그램을 시도해보십시오 ... 큰 차이가 있습니다.

따라서 cleanmgr각 파일에 대해 다음과 같은 경우 :

  1. 오픈 레지스트리 HK *
  2. 요구 사항을 문의하거나 레지스트리에 대한 글을 작성하십시오.
  3. 레지스트리 닫기 HK *

작업 당 최대 2 ~ 3 초가 소요될 수 있으며 파일 당 하나의 작업을 수행하는 경우 파일 당 천 개당 1 시간 정도 걸릴 수 있습니다 ... 파일 수가 40000 개를 약간 넘었습니다. 40000 파일 / 8 시간은 1.3 초마다 하나의 파일을 처리하고 있습니다. 다른 쪽에서는 스크립트에서 파일을 삭제하는 데 5 분 미만이 소요되어 초당 약 133 개를 삭제합니다. 차.

따라서 확실히 cleanmgr시간 deletion자체가 원인이 아닙니다 ! 또 뭐하는거야? 속도를 M $ 향상 시키십시오!


1
이것은 원래 질문에 대한 답변 이 아닙니다 . 새로운 질문이있는 경우 자신의 질문을하십시오 (도움이되는 경우 상황에 대한 질문 참조).
DavidPostill

프로세스 레지스트리 ( docs.microsoft.com/en-us/sysinternals/downloads/procmon )를 사용하여 Windows 레지스트리 등의 동작을 분석 하지 않은 이유는 무엇 입니까?
cybernard

* i m 가변 sp.
StingyJack

2

이 문제를 완화하고 "디스크 정리"의 "Windows Update 정리"단계를 빠르게 수행 하는 한 가지 방법은 이른바 '정리'활동 기간 동안 TiWorker.exe 프로세스의 우선 순위를 일시적으로 높게 설정하는 것입니다.

에서 작업 관리자 '세부 사항'창 찾기 TiWorker.exe및 팝업 메뉴를 표시하기 위해 마우스 오른쪽 버튼으로 클릭합니다. '우선 순위 설정'에서 "정상적으로"를 선택하십시오. 저의 경우 TiWorkerCPU 활동이 평균 16 %에서 최대 25 % (4 코어 머신)로 증가했습니다.

여기에 이미지 설명을 입력하십시오

작은 속도 향상 및 달성 가능성이 높은 것 외에도 "Windows Update Cleanup"이 파일별로 진행되는 방식으로 코딩되어 있기 때문에 수행 할 수있는 작업이 거의 없습니다. 전체 작업을 끔찍한 디스크 바운드로 만듭니다.

또한 프로세스가 중단 되지 않았 으며 언젠가는 완료 될 것임을 알고 있습니다. 이를 확인하고이 성가신 대기 시간 동안주의를 산만하게하기 위해 리소스 모니터 의 '디스크 활동'섹션 ( "resmon.exe"실행)을 확인할 수 있습니다.


아주 좋은 속도!
주관 주의자

1

크기가 5MB 인 파일 20 개를 삭제하면 크기가 64MB 인 10 개 파일을 삭제하는 데 시간이 더 걸립니다. 시스템이 파일을 삭제할 때 실제로 는 파일을 삭제하지 않고 (드라이브의 빈 공간이 "노이즈"비트로 구성 될 수 있기 때문에) "파일이 여기에서 시작됩니다"라는 앞 부분을 횡설수설로 덮어 씁니다. 나중에 공간을 사용하려고 할 때 해당 부분과 다음 부분을 덮어 씁니다. 실제로 삭제는 달리 쓰는 것과 같습니다.

디스크 정리와 관련하여 정리하는 것은 대개 작은 파일 (인터넷 쿠키, 임시 파일 등)이 많이 있습니다. 따라서 다른 많은 것보다 디스크에 더 많은 쓰기 작업을 수행하며 볼륨이 디스크에 쓰여지기 때문에 새로운 것을 설치하는 데 많은 시간이 걸릴 수 있습니다.


원래 질문은 특히 디스크 정리에 대해 묻습니다.
liljoshu

0

경고의 또 다른 단어 : 시간이 걸리는 부분 중 하나는 WinSxS를 정리할 때 디스크 정리가 먼저 많은 파일을 압축 해제해야한다는 것입니다. 따라서 정리의 첫 번째 부분에서 실제로 디스크 사용량이 증가합니다!


-2

프로세스 속도를 높이는 또 다른 방법은 약 5 분 동안 디스크 정리를 실행하는 것입니다. 멈추었다가 다시 시작하면 순식간에 흐려질 것입니다! 또한 미리 HDD / SSD 디프 레그 또는 최적화를 수행하면 속도가 빨라지므로 정리 후에 다시 조각 모음 / 오 퍼팅하는 것을 잊지 마십시오.


SSD의 조각 모음을 수행하지 마십시오. 읽기 및 쓰기주기가 오래 걸리고 거의 이득이 없습니다.
Nordlys Jeger

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