자동 업데이트가 해제 된 Windows 7 PC가 있습니다. 한 달에 한 번씩 일괄 업데이트를 수행합니다. 그러나 "업데이트 확인"마다 15 ~ 30 분이 걸립니다. 업데이트 확인이 왜 그렇게 느릴 수 있는지 모르겠습니다. 백그라운드에서 무슨 일이 일어나고 있는지 궁금합니다. 컴퓨팅 해시입니까? 자동 업데이트가 활성화 된 PC는 부팅 할 때마다 동일한 운명에 처하게됩니까 (알지 못하는 경우에만)?
자동 업데이트가 해제 된 Windows 7 PC가 있습니다. 한 달에 한 번씩 일괄 업데이트를 수행합니다. 그러나 "업데이트 확인"마다 15 ~ 30 분이 걸립니다. 업데이트 확인이 왜 그렇게 느릴 수 있는지 모르겠습니다. 백그라운드에서 무슨 일이 일어나고 있는지 궁금합니다. 컴퓨팅 해시입니까? 자동 업데이트가 활성화 된 PC는 부팅 할 때마다 동일한 운명에 처하게됩니까 (알지 못하는 경우에만)?
답변:
다음과 같은 이유로 업데이트 확인 부분이 너무 느립니다.
Windows 7은 구성 요소 기반 서비스 를 사용합니다. 즉, Windows Update는 파일 및 구성 요소 종속성 / 상호 종속성을 확인하고 이전 파일 / 구성 요소의 병렬 버전을 유지하면서 개별 업데이트를 제거 할 수 있도록 엄청나게 열심히 노력해야합니다. / components를 사용하지만 다른 업데이트 / 구성 요소를 중단하지 않으면 서 우선 순위를 고려하면서 항상 다른 것을 알고 있습니다. 이 모든 작업을 수행하는 코드는 지옥처럼 복잡해야합니다.
Windows 7 64 비트는 각 업데이트의 32 비트 및 64 비트 버전을 유지해야합니다.
Windows는 각 업데이트의 GDR 및 LDR 버전 을 유지해야합니다. 즉, Windows 7 64 비트에서는 각 업데이트에 대해 32 비트 GDR, 32 비트 LDR, 64 비트 GDR, 64 비트 LDR을 얻게됩니다.
Windows Update의 코드는 개념상의 복잡성으로 인해 비효율적입니다. 지난 몇 년 동안의 관찰에 따르면 릴리스 된 총 업데이트 수가 증가함에 따라 업데이트 확인 시간이 거의 기하 급수적으로 증가했습니다. 나에게 이것은 대체 알고리즘을 결정하거나 의존성을 해결하기 위해 어떤 종류의 재귀 알고리즘이 사용되고 있음을 나타냅니다.
안타깝게도 Microsoft는 Windows 내부에 대해 이야기하는 것을 좋아하지 않기 때문에 스스로 알아 내거나 추측해야합니다.
기존 답변에서 문제의 여러 측면이 처리되었습니다. 나는 이미 말한 것을 반복하지 않고 일반적인 방식으로 원인을 나열함으로써 그것들을 함께 묶으려고 노력할 것입니다.
이 점들을 좀 더 자세히 살펴 보겠습니다.
Windows Update 복잡성
업데이트가 릴리스 된 후에는 시간이 지남에 따라 개정, 대체 및 만료의 세 가지 다른 단계가 추가 될 수 있습니다.
업데이트 수정 : 이전에 릴리스 된 업데이트를 변경하면 일부 업데이트가 변경된 업데이트 수정이라고합니다. 전체 업데이트가 아닌 부분 업데이트 업데이트입니다.
대체 업데이트 : 이전 릴리스를 완전히 대체 한 것입니다. 때때로 Microsoft는 여러 릴리스를 단일 패키지로 포장하고 해당 패키지가 캡슐화 된 업데이트를 대체합니다.
만료 된 업데이트 : 유효한 업데이트 목록에서 제거 된 업데이트입니다. 이러한 업데이트는 더 이상 적용되지 않으며 설치를 위해 검색되지 않습니다. 대체 업데이트는 대체 업데이트로 교체 된 후에 대부분 만료됩니다.
업데이트에는 종속성 메커니즘도 있으므로 일부 업데이트에는 다른 업데이트를 먼저 적용해야 할 수도 있습니다.
만료 된 업데이트는 불행히도 컴퓨터에서 제거되지 않으므로 계산에 참여하기 때문에 WU 성능에 문제가 있습니다. 디스크 정리를 사용하여 오래된 Windows 업데이트 를 제거 하면 약간의 개선이 이루어질 수 있습니다 (WU도 매우 취약하므로 시스템 드라이브의 백업 디스크 이미지를 먼저 가져옵니다).
우 계산
가능한 많은 조합이 가능하기 때문에 Microsoft는 WU 서버의 모든 업데이트를 거대한 트리 형식으로 유지합니다. 어떤 업데이트를 적용해야할지 결정하는 것은 클라이언트의 설치된 하드웨어 및 소프트웨어뿐만 아니라 이미 설치된 모든 업데이트를 고려하는 트리 정리 알고리즘에 의해 수행됩니다. 잘라낼 때 모두 성공적으로 적용됩니다.
이 알고리즘은 성공을 보장하지 않습니다. 즉, WU가 OS를 완전히 파괴하거나 심지어 부팅 할 수 없게 할 수도 있습니다. 예를 들어, A2에 대한 업데이트 B가 A1과 A2 사이에 릴리스 된 개정 A2가있는 업데이트 A1을 사용하는 것은 전적으로 이해할 수 있습니다. 이제 잘못된 결정이 치명적일 수있는 경우 설치 순서가 A1-B-A2인지 아니면 A1-A2-B인지를 알아 봅니다.
과부하 된 WU 서버
Wikipedia는 Windows Update 통계 에 대해 말합니다 .
2008 년 현재 Windows Update는 약 5 억 개의 클라이언트를 보유하고 있으며 하루에 약 3 억 5 천만 개의 고유 한 스캔을 처리했으며 클라이언트 시스템에 대한 평균 150 만 개의 동시 연결을 유지했습니다. 화요일 패치에서 Microsoft가 일반적으로 새로운 소프트웨어 업데이트를 출시하는 날에는 아웃 바운드 트래픽이 초당 500 기가비트를 초과 할 수 있습니다.
이 숫자는 아마도 두 배가되었을 것이며 WU 서버에 연결할 수없는 이유를 설명합니다. "업데이트 확인하지만 선택하겠습니다"의 WU 옵션을 사용하고 있으며 내 경험에 따르면 업데이트 확인시 대기 시간보다 오래 걸리며 연기가 필요합니다.
Windows 7의 오랜 역사
Windows 7은 2009 년 7 월 22 일에 릴리스되었습니다. 약 17 개월 후, 서비스 팩 1 (SP1)은 2011 년 2 월 22 일에 나왔습니다. 약 4.5 년 전입니다. 이는 SP2가 오래 전에 만료되었음을 의미합니다.
서비스 팩을 설치하면 전체 업데이트 기록이 지워져 실제로 Windows를 새로 설치 한 후와 마찬가지로 WU가 0부터 시작된다는 점이 좋습니다. 고려해야 할 업데이트가 적기 때문에 이것은 모든 계산 속도를 크게 향상시킵니다.
SP1 이후의 기존 업데이트의 수는 오늘날 WU 계산이 왜 그렇게 느린 지 설명합니다. Microsoft의 경우 최신 Windows 8.1 또는 Windows 10으로 업그레이드하여 문제를 "간단히"해결할 수 있으므로 WU는 업데이트 횟수가 적습니다.
결론
Microsoft가 여전히 Windows 7에 수많은 업데이트를 계속 적용함에 따라 WU는 시간이 지날수록 속도가 계속 느려집니다.
한 가지 가능한 최적화 방법은 오래된 Windows 업데이트 를 제거하는 것 입니다. 또 다른 방법은 "업데이트 확인하지만 선택하겠습니다"의 WU 옵션을 사용하고 이른 아침이나 늦은 밤에 업데이트를 확인하는 것입니다.
대부분의 업데이트는 Windows 8 및 10에도 적용되므로 Microsoft WU 서버에 대한 부담은 Windows 10이 곧 출시 될 때만 증가합니다. 또한 Microsoft는 최신 운영 체제를 제공하는 데 따른 악센트와 함께 자체 정책에 따라 WU 서버의 대역폭을 소포하는 것 같습니다. 따라서 Windows 10이 릴리스되면 Windows 7의 속도가 느려질 것입니다. Windows 10의 경우.
WU가 너무 느리면 유일한 해결책은 이후 버전의 Windows로 업그레이드하는 것입니다.
좋은 소식 : Windows 7 및 8.1 용 SP2가 도착했습니다
Microsoft는 실제로 Windows 7 및 8.1 용 SP2를 게시했습니다. 이 업데이트는 알 수없는 이유로 Windows Update에서 제공되지 않으므로 수동으로 다운로드하여 설치해야합니다.
: 기사에서 그것을 얻을하는 방법에 대해 자세히
Microsoft는 Windows 7 및 8.1 업데이트 정밀 검사 -하지만 서비스 팩을 호출하지 않습니다 .
이 문제는 수년간 다른 수정 사항으로 수년에 걸쳐 왔으므로 2016 년 1 월 5 일 현재이 문제에 대한 업데이트 된 가이드는 다음과 같습니다.
2016 년 5 월 현재 새로 설치 한 후 Windows 7 SP1을 완전히 업데이트하는 훨씬 빠른 방법이 아래의 편집 섹션을 확인하십시오.
이것이 W7 SP1을 다시 설치하거나 Windows 업데이트 관련 문제로 인해 업데이트를 확인할 때 수행하는 작업입니다.
서비스 팩 1이 설치되어 있지 않으면이 안내서를 따르기 전에 설치하십시오.
KB-3138612를 다운로드 하여 나중에 찾을 수있는 곳에 저장하십시오.
SUR Tool 을 같은 장소에 저장하십시오
Windows 가로 드되기 전에 PC를 다시 시작하고 인터넷 연결을 끊으십시오. 모든 부팅 창에서 백그라운드에서 업데이트를 확인하고 업데이트 확인을 다시 시작하기 때문에 다운로드가 완료 될 때까지 다운로드 패키지가 설치되지 않기 때문에 중요합니다. Windows 가로 드되기 전에 인터넷에서 연결을 끊으면이를 막을 수 있습니다.
부팅이 완료되면 KB-3138612를 설치하고 재부팅이 필요한 경우 인터넷 연결을 끊으십시오.
이제 SUR 도구 패키지를 설치하십시오. 이것은 큰 패키지이며 Windows 업데이트 저장소 정리 및 복구와 함께 많은 업데이트를 설치합니다. 또한 나중에 설치해야 할 Windows 업데이트 수를 줄일 수 있습니다.
SUR 패키지 재부팅 설치 후 인터넷에 연결하고 수동 Windows Update를 수행하면 훨씬 빠르게 작동합니다. 이러한 수정 후에도 제어판에서 수동으로 시작한 경우 일부 W7 PC에서 업데이트 확인을 완료하는 데 최대 1 시간이 걸립니다.
다른 Windows 업데이트 문제가 있고 위의 두 업데이트가 설치되어 있으면 이 Microsoft Windows Update 수정 도구를 다운로드 ( "다른 이름으로 링크 저장"을 마우스 오른쪽 단추로 클릭)하여 실행하고 공격 모드를 선택하여 Windows 업데이트를 완전히 재설정하십시오. 재부팅하고 제어판에서 Windows 업데이트를 다시 시도하십시오. 이 도구는 다른 Microsoft Fixit 도구가 적어도 내 경험상 실패했을 때 문제를 해결합니다.
업데이트 : Microsoft는 Windows 7 SP1에 대한 대규모 업데이트 롤업을 발표했습니다 . 서비스 팩과 유사하지만이를 호출하지는 않습니다. 이렇게하면 새로 설치 한 후에 Windows 7을 더 빠르게 업데이트 할 수 있으며 더 이상 Windows 업데이트 문제가없고 재부팅이 많이 발생합니다. 이 업데이트 롤업은 시스템을 최신 상태로 2016 년 4 월 화요일에 패치합니다.
이것은 Windows Update를 통해 릴리스되지 않으므로 Internet Explorer를 사용하여 가져와 IE를 열고이 주소로 이동해야합니다
검색 상자 3125574를 입력하고 Enter 키를 누르십시오.
이제이 롤업의 모든 버전을 볼 수 있습니다. 필요한 롤업을 선택하고 나중에 찾을 수있는 곳에서 다운로드하십시오.
또한 Windows 업데이트 카탈로그 페이지를 사용하여이 업데이트를 먼저 다운로드하여 설치하십시오 (3020369 ). 롤업을위한 필수 구성 요소이며 3125574를 설치하고 이러한 업데이트를 적용 할 때 인터넷 연결이 끊어 져야합니다.
당신은 사용할 때 CPU 사용량을 확인하는 ETW / WPR / WPA를 사용하면 CPU 사용에서 오는 것을 알 스캔시 wuaueng.dll!CUpdatesToPruneList::AddSupersedenceInfoIfNeeded
에서 호출된다 wuaueng.dll!CAgentUpdateManager::FindUpdates
. AddSupersedenceInfoIfNeeded 방법은 가장 느린 것입니다 . 제공되는 / 설치된 Windows 7 업데이트가 여전히 필요하거나 대체 된 것인지 (새 버전으로 업데이트 / 대체) 이름이 나타내는 것을 수행합니다. 이것은 매우 느립니다.
에서 마지막 윈도우 업데이트 클라이언트가 업데이트를 2016년 6월 이며, 윈도우 2016년 7월 7일 업데이트 롤업의 일부 업데이트 검색을 빠르게 다시입니다.
새 업데이트를 검색하는 데 1 분이 조금 걸립니다. 업데이트 KB3172605의 설치 속도를 높이려면 WindowsUpdate 서비스 ( net stop wuauserv
)를 중지하십시오 .
이 WU 서비스 중지 트릭은 여러 MSU 업데이트를 설치할 때 설치 속도를 크게 높여줍니다.
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
FOR /R "%~dp0" %%A IN (*Windows6.1-KB*.MSU) DO (
CALL :SUB %%~nA
ECHO= Installing KB!KB_NUM!
>NUL net stop wuauserv
WUSA "%%A" /quiet /norestart)
ECHO= == Press any key to close the Window ==
>NUL PAUSE
GOTO :EOF
:SUB
SET "KB_NUM=%*"
FOR /F "DELIMS=-" %%B IN ("%KB_NUM:*-KB=%") DO SET "KB_NUM=%%B"
Windows 10에서 Microsoft는 내 제안에 따라 문제를 해결하고 업데이트를 누적합니다. 현재 패치 레벨에 1 개의 대형 업데이트 만 있으면됩니다. 이 느린 점검은 더 이상 필요하지 않습니다.
XP 업데이트에 대한 과거의 경험이 어떤 징후라면, 때때로 지수-시간 알고리즘을 사용할 수 있습니다 . 업데이트가 많으면 언제 까지나 오래 걸립니다. 현재 Win 7 업데이트는 비슷한 상황에 있습니다. 이 최신 둔화에 대한 공식적인 설명은 아직 없지만 시간이 오래 걸립니다. 새로운 버전이있을 때 "이전 버전에"발생한다는 점이 흥미 롭습니다. 냉소적 인 사람은 도울 수는 없지만 누군가가 [오래된] Windows의 선을 따라 의도적으로 그런 일이 일어나기를 원한다고 상상할 수 있습니까? 새 버전이 필요합니다. 아니면 휴가철을 시작하는 MS의 방법 일뿐입니다.
(예를 통해 자동으로 업데이트) 자동으로 제공되지 않는 WU의 속도 저하의 어떤 종류를위한 핫픽스가있다 : https://support.microsoft.com/en-us/kb/3102810 아아 그것의 진정한 차이를 만들지 않았다 내 경우에는 32 비트와 64 비트의 두 대의 다른 컴퓨터에서 시도했습니다. 또한 10 월부터 시작되었으므로 최신 문제가 아닐 수도 있습니다.
오늘날 Windows를 실행하는 PC는 약 10 억 대입니다. 각 PC에는 하드웨어, 액세서리, OS 버전, 언어, IE, 장치 드라이버 버전, 다양한 패치 수준의 Microsoft 소프트웨어, 보안 업데이트 등이 있습니다. Windows Update 시스템은 이러한 모든 조합을 정렬하여 올바른 업데이트를 제공해야합니다. 개별 PC. 각 업데이트에는 종속성 및 "supercedence"구조를 포함한 속성이 있습니다.
스캔의 첫 번째 단계 (첫 번째 실행)는 OS 버전, SP, 언어, PC 제조업체가 PC에 대한 가능한 업데이트 트리를 제거 할 것인지 결정하는 것입니다. 첫 번째 스캔을 기반으로, 가능한 업데이트 ID 세트가 디바이스로 전송되고 로컬 클라이언트는 어떤 업데이트가 설치, 대체되었는지 등을 계산 한 다음 해당 목록을 서버로 전송하고 후속 스캔을 위해 로컬로 사본을 캐시합니다. 서버는 UI에 적절한 UI 언어로 표시되는 설명 등으로 업데이트 요청을 클라이언트 요청에 응답합니다.
하루에 한 번 백그라운드에서 자동 업데이트 클라이언트가 점검 업데이트를 수행하고 설치된 업데이트의 로컬 캐시를 새로 고쳐 후속 스캔이 델타이고 빠릅니다. 이들은 PC의 % windir % \ softwaredistribution 폴더에 저장됩니다.
이전에 다운로드 한 업데이트에 대해서도 유사한 프로세스가 수행됩니다. 서비스는 패키지를 다시 다운로드하지 않습니다.
검색하는 동안 실제로 발생하는 일을 최소한 이해하는 데 도움이되는이 게시물을 찾았습니다. 아름답게 쓰여 있습니다. 그래서 나는 그것을 게시하고 있습니다. 여기 에서 원래 게시물을 찾을 수 있습니다
Windows 업데이트 설정을 다음과 같이 변경했을 때 설치 업데이트 확인에 눈에 띄는 변경이있었습니다. Check for updates but let me choose whether to download and install them
내 생각에 가장 좋은 방법은 Windows 업데이트를 활성화하고 업데이트를 다운로드 할 수는 있지만 자동으로 설치할 수없는 옵션으로 전환하는 것입니다. 이렇게하면 검사 나 백그라운드 파일 다운로드를 기다리지 않고도 원하는 것을 설치할 수 있습니다.
이제 왜 느린 지 대답합니다. Windows 업데이트가 사용자에게 눈에 띄는 영향을 줄 이도록 구축되었다는 사실에 기인한다고 생각합니다. BITS 서비스 (백그라운드 인텔리전트 전송 서비스)를 사용하여 업데이트를 확인하고 다운로드합니다.
이 서비스의 초점은 사용자에게 지장을주지 않는 방식으로 작동하는 것입니다. Microsoft는 클라이언트가 매달 업데이트 서비스를 켜거나 끄도록 의도하지 않았기 때문에 의도적으로 속도가 느려집니다.
당신이 볼 수있는 것은 자신의 WSUS 서버 설정을 얻는 것입니다. 이렇게하면 엔터프라이즈 관리자와 거의 같은 방식으로 업데이트를 거부 할 수 있으며 선택한 업데이트를 소유 한 모든 Windows 장치에 적용하거나 거부 할 수 있습니다. 집안일을 줄이면서 선택적으로 업데이트하는 집안일 만들기.
Windows Update 및 기타 여러 Windows 시스템 구성 요소는 Microsoft JET Blue 데이터베이스 엔진을 사용하기 때문에 속도가 느립니다.이 엔진은 성능이 크게 저하되어 전체 리소스를 낭비합니다.
다른 사람들이 언급했듯이 Windows Update 코드 자체에는 어느 정도의 재귀가있는 것으로 보이며 업데이트 수가 증가함에 따라 성능이 저하됩니다.
다른 데이터 포인트를 추가하기 만하면됩니다. 최근에 Vista PC를 가져와야합니다. Vista를 SP1에서 SP2로 수동으로 업그레이드했지만 업데이트 확인에 시간이 오래 걸립니다. 24 시간 이상 아무 일도 일어나지 않았습니다.
다음 업데이트 설치를 포함하는 솔루션을 찾은 인터넷 검색을 수행했습니다.
http://www.catalog.update.microsoft.com/Search.aspx?q=KB3205638%20vista http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012583%20vista http : // www.catalog.update.microsoft.com/Search.aspx?q=KB4015195%20vista http://www.catalog.update.microsoft.com/Search.aspx?q=KB4015380%20vista
업데이트를 수동으로 다운로드하여 설치 한 후 10 분 동안 업데이트 확인을 실행했는데 200 개의 업데이트가 발견되었습니다. 이것은 Vista 용이지만 Windows 7에서도 비슷한 것이 있다고 생각합니다.
이 문제가 발생하여 새로 설치 한 컴퓨터에서 Windows Update를 처음 밤새 실행하도록했습니다. 이를위한 팁 :
에너지 옵션으로 이동하여 대기 시간을 "never"로 설정하십시오.
자동 Windows 업데이트를 켭니다. 검색 프로세스에도 시간이 걸리기 때문에 기본 시간 인 03:00 AM은 괜찮습니다.
"일부 구성 요소를 업데이트하려면 Windows 업데이트가 필요합니다 ..."프로세스를 처음 수행하는 것이 좋습니다 (Windows 7의 경우 200 개가 넘는 업데이트에 비해 빠르게 진행됨)
모든 것이 올바르게 업데이트되면 엄청난 양의 패치 (약 200 개)가 설치되어 있습니다. Windows는 또한 Windows Defender 업데이트 / 스캔을 조각 모음하고 실행했습니다.
그 후 나머지 Windows Update주기 (업데이트 검색-설치-재부팅-업데이트 검색-설치-재부팅-업데이트 검색 ... # 업데이트가 0이 될 때까지)는 훨씬 빠르게 작동합니다.
이봐, 내 이전 답변이 좋지 않다고 생각하지만 PC를 더 빨리 실행하는 방법에 대한 좋은 조언을주었습니다 .Windows 7을 새로 설치할 때 원본을 사용하지만 여전히 슬립 스트림 업데이트 설치 디스크를 사용합니다. 새로 설치 한 직후에 설치하면이 두 가지가 업데이트 검색 및 설치 속도를 크게 향상시킬 수 있습니다.
해싱은 아니지만 예, 많은 DLL 파일 버전만큼 깊게 검사하고 있습니다. 어떤 시스템을 사용하든 속도가 느립니다.
해결책으로 시스템을 끄고 낮이나 밤에 시스템이 너무 많이 필요하지 않은 경우 전원을 켜고 업데이트를 확인하여 모두 설치하도록하십시오.