자체 프로세스에서 호스팅 서비스 (svchost.exe) 격리


13

현재 많은 수퍼 유저가 알고있는 것처럼 svchost.exe 는 Microsoft에서 서비스 그룹당 하나의 프로세스로 여러 Windows 서비스를 단일 프로세스로 호스팅하는 데 사용됩니다.

Windows 7 이상에서는 작업 관리자에서 특정 svchost.exe 프로세스를 마우스 오른쪽 단추로 클릭하고 "서비스로 이동"을 선택하여 "내부"에서 실행되는 서비스를 볼 수 있습니다. 모든 Windows 버전에서 Process Explorer를 사용할 수도 있습니다.

그러나이를 통해 어떤 서비스가 CPU를 100 %로 고정하는지 또는 700MB의 메모리를 사용하는지 확인할 수 없습니다. 동일한 그룹에서 서비스를 수동으로 중지하고 제거 프로세스를 사용할 수 있지만 특히 문제가 간헐적으로 발생하는 경우에는 지루합니다.

Microsoft는 아마도 이와 같은 서비스를 그룹화해야 할 합당한 이유가있을 것입니다 (아마도 프로세스 별 오버 헤드를 줄이겠습니까?). 특정 서비스가 자체 svchost.exe에서 격리되도록 강제 실행하는 방법이 있습니까?

답변:


16

아니요, 올바른 방법 은이 명령을 실행하는 입니다.

sc configwuauserv type= own

자체 프로세스에서 Windows Update를 실행하도록 구성합니다. 이것을 되돌리려면

sc config wuauserv type= share

관리자 권한 으로 명령 프롬프트에서 . 설정 값이 변경됩니다 type. type이 0x20그룹 프로세스 인 경우 값이 0x10자체 프로세스 인 경우 .

Windows 10 Creators Update (버전 1703, 빌드 15063) 이후 RAM이 충분한 경우 Windows에서이를 자동으로 수행합니다 .


1

내가 아는 유일한 방법은 레지스트리 해킹입니다. 일반적인 레지스트리 데이터베이스 편집 고지 사항이 적용됩니다 (Windows 설치에서 시공간 전체에 영향을 줄 수 있음).

다음 예제는 Windows Update ( wuauserv) 서비스 를 분리합니다.이 서비스는 잘못 작동하고 과도한 리소스를 사용하는 것으로 알려져 있습니다. 이 방법은 Windows 7 에서만 테스트되었습니다 .

  1. regedit.exe (레지스트리 편집기)를 시작하고

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost
    

    이 키에는 그룹 설정을 포함하는 각 그룹의 하위 키와 그룹의 서비스를 나열하는 각 그룹의 REG_MULTI_SZ 값이 포함됩니다.

  2. 대상 서비스의 현재 그룹 (예 netsvcs:)의 하위 키를 찾은 다음 적절한 이름과 동일한 내용으로 새 하위 키를 만듭니다. 내용뿐만 아니라 값 유형을 관찰해야합니다.

  3. 서비스 이름이있는 단 한 줄만 포함하여 새 그룹의 이름을 딴 REG_MULTI_SZ 값을 만듭니다. 기존 그룹 REG_MULTI_SZ에서 서비스 이름을 제거하십시오.

  4. 그런 다음 아래의 대상 서비스 하위 키로 이동하십시오 HKLM\SYSTEM\CurrentControlSet\services. 이 예에서 :

     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\wuauserv
    
  5. ImagePath값을 편집하고 그룹 이름을 -k새 그룹 이름으로 변경하십시오 .

  6. 대상 서비스를 다시 시작하십시오 (예 : 작업 관리자의 서비스 탭 또는 services.msc를 통해). 별도의 svchost.exe 프로세스에 표시되어야합니다.

다음에 Windows Update가 작동하면 리소스 사용이 작업 관리자에 즉시 표시되며 "종료 프로세스"를 사용하여 종료 될 수도 있습니다 (중요한 서비스에는 권장되지 않음).

서비스가 시작되지 않으면 위의 단계를 검토하고 다시 시도하거나 맨 위의 경고를 상기하면서 변경 사항을 되 돌리십시오. :-)

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