답변:
Windows는 제거 할 수없고 diffs에 사용되지 않는 교체 된 업데이트 광고 압축 파일을 제거하여 WinSxS 폴더를 압축합니다. 이것은 많은 CPU 전력을 소비하므로 CPU 사용량이 많은 이유입니다.
당신은 할 수 xperf / WPA와 CPU 사용량을 분석하고 이를 확인 할 수 있습니다.
Windows Updates Cleanup이 거의 100 % CPU 사용을 차지한다는 것을 확인할 수 있습니다. WinSxS 압축 및 업데이트 재 통합에 관한 것입니다.
Windows 설치 후 처음으로 정리를 시작했으며 50 %를 완료하는 데 2 시간이 걸렸습니다. 그래프에서 볼 수 있듯이 처음에는 디스크에서 작은 파일을 많이 읽거나 (두 번째 그래프) 압축을 위해 CPU를 100 % 사용한 후 등이 있습니다.
질문에 불을 피우기 위해 불변의 가상 머신에서 다음 단계를 수행했습니다.
cleanmgr
그 일을하고 시간을주의 깊게 살펴 (8 시간 이상)Linux SystemRescueCd로 재부팅하여 모든 파일을 나열하고 Window에서 찾은 파일을 나열하고 가능한 한 빨리 이러한 목록을 수행 할 수 있습니다 (alc 검사 등 없음).
또한 cleanmgr
i에서 검색이 끝난 후 시간 만 계산합니다 (검색 자체도 6 시간 이상 걸렸습니다).
따라서 파일을 삭제하는 것은 병목이 아닙니다 (삭제 자체에는 5 분이 필요하지만 cleanmgr
8 시간 이상이 걸립니다).
호스트가 Linux이기 때문에 자체 삭제가 너무 빠를 수 있습니다.이 속도는 Linux가 가상 시스템 (24GiB)의 디스크로 사용되는 고정 크기 파일에 모든 쓰기를 캐시하기 때문에 발생합니다. RAM과 나는 Windows 16GiB에 SWAP을 사용하지 않아도 PAGEFILE.SYS; 또한 Linux는 RAM에 전체 파일을 보유 할 수 있습니다 (RAM에서 해당 파일로 테스트하여 삭제 시간이 많이 걸리지 만 cleanmgr
시간이 드롭되지는 않습니다).
예, 가상 디스크를 RAM에 완전히 넣으면 cleanmgr
시간이 떨어지지 않지만 파일을 수동으로 삭제하면 시간이 조금 줄어 듭니다 (64GiB의 RAM이 있으면 Linux 쓰기 캐시가 훌륭합니다).
테스트를위한 구성 :
테스트 1 : 물리적 하드 디스크에 24GiB 가상 디스크 보유 테스트 2 : Linux 호스트 RAM에 24GiB 가상 디스크 보유
cleanmgr
삭제하는 각 파일마다 Windows 레지스트리에서 무언가를하고있는 것이 두렵습니다 ( 레지스트리에 대한 액세스가 매우 낮습니다).
내가 가진 모니터 :
cleanmgr
작동 중 2 %의 파이크와 함께 0 % 근처 ), Linux 디스크 캐시는 dato가 실제 디스크로 전송되는 것을 방지합니다.cleanmgr
28 %의 파이크와 함께 작업 할 때 대부분 2 % ~ 15 %)그래서 명확하게 cleanmgr
발견 할 수없는 일, 어쩌면 수면 시간을 많이하고있다? 레지스트리에 액세스하는 경우 Windows 모니터에서 사용하지 않는 CPU, 사용되지 않는 HDD (레지스트리가 RAM에 있음) 등으로 인해 레지스트리에 액세스하는 데 1 초 이상 걸릴 수 있습니다. 레지스트리를 열고 각 작업마다 레지스트리를 닫아서 HK *를 열어 놓아 레지스트리에 액세스 할 수있는 고유 한 프로그램을 시도해보십시오 ... 큰 차이가 있습니다.
따라서 cleanmgr
각 파일에 대해 다음과 같은 경우 :
작업 당 최대 2 ~ 3 초가 소요될 수 있으며 파일 당 하나의 작업을 수행하는 경우 파일 당 천 개당 1 시간 정도 걸릴 수 있습니다 ... 파일 수가 40000 개를 약간 넘었습니다. 40000 파일 / 8 시간은 1.3 초마다 하나의 파일을 처리하고 있습니다. 다른 쪽에서는 스크립트에서 파일을 삭제하는 데 5 분 미만이 소요되어 초당 약 133 개를 삭제합니다. 차.
따라서 확실히 cleanmgr
시간 deletion
자체가 원인이 아닙니다 ! 또 뭐하는거야? 속도를 M $ 향상 시키십시오!
이 문제를 완화하고 "디스크 정리"의 "Windows Update 정리"단계를 빠르게 수행 하는 한 가지 방법은 이른바 '정리'활동 기간 동안 TiWorker.exe 프로세스의 우선 순위를 일시적으로 높게 설정하는 것입니다.
에서 작업 관리자 '세부 사항'창 찾기 TiWorker.exe
및 팝업 메뉴를 표시하기 위해 마우스 오른쪽 버튼으로 클릭합니다. '우선 순위 설정'에서 "정상적으로"를 선택하십시오. 저의 경우 TiWorker
CPU 활동이 평균 16 %에서 최대 25 % (4 코어 머신)로 증가했습니다.
작은 속도 향상 및 달성 가능성이 높은 것 외에도 "Windows Update Cleanup"이 파일별로 진행되는 방식으로 코딩되어 있기 때문에 수행 할 수있는 작업이 거의 없습니다. 전체 작업을 끔찍한 디스크 바운드로 만듭니다.
또한 프로세스가 중단 되지 않았 으며 언젠가는 완료 될 것임을 알고 있습니다. 이를 확인하고이 성가신 대기 시간 동안주의를 산만하게하기 위해 리소스 모니터 의 '디스크 활동'섹션 ( "resmon.exe"실행)을 확인할 수 있습니다.
크기가 5MB 인 파일 20 개를 삭제하면 크기가 64MB 인 10 개 파일을 삭제하는 데 시간이 더 걸립니다. 시스템이 파일을 삭제할 때 실제로 는 파일을 삭제하지 않고 (드라이브의 빈 공간이 "노이즈"비트로 구성 될 수 있기 때문에) "파일이 여기에서 시작됩니다"라는 앞 부분을 횡설수설로 덮어 씁니다. 나중에 공간을 사용하려고 할 때 해당 부분과 다음 부분을 덮어 씁니다. 실제로 삭제는 달리 쓰는 것과 같습니다.
디스크 정리와 관련하여 정리하는 것은 대개 작은 파일 (인터넷 쿠키, 임시 파일 등)이 많이 있습니다. 따라서 다른 많은 것보다 디스크에 더 많은 쓰기 작업을 수행하며 볼륨이 디스크에 쓰여지기 때문에 새로운 것을 설치하는 데 많은 시간이 걸릴 수 있습니다.
프로세스 속도를 높이는 또 다른 방법은 약 5 분 동안 디스크 정리를 실행하는 것입니다. 멈추었다가 다시 시작하면 순식간에 흐려질 것입니다! 또한 미리 HDD / SSD 디프 레그 또는 최적화를 수행하면 속도가 빨라지므로 정리 후에 다시 조각 모음 / 오 퍼팅하는 것을 잊지 마십시오.