작업 관리자는 svchost.exe의 전체 메모리 사용량을 보여줍니다. 개별 서비스의 메모리 사용량을 볼 수있는 방법이 있습니까?
이는 svchost.exe의 Finegrained 성능보고 와 유사합니다.
작업 관리자는 svchost.exe의 전체 메모리 사용량을 보여줍니다. 개별 서비스의 메모리 사용량을 볼 수있는 방법이 있습니까?
이는 svchost.exe의 Finegrained 성능보고 와 유사합니다.
답변:
원하는 정보를 쉽게 얻을 수있는 방법이 있지만 시스템을 약간 변경해야합니다.
각 서비스를 자체 SVCHOST.EXE 프로세스에서 실행하도록 분할하면 CPU주기를 소비하는 서비스는 작업 관리자 또는 프로세스 탐색기에서 쉽게 볼 수 있습니다 ( "="뒤에 공백).
SC Config Servicename Type= own
이를 명령 행 창에서 수행하거나 BAT 스크립트에 넣으십시오. 관리 권한이 필요하며 컴퓨터를 다시 시작해야 적용 할 수 있습니다.
원래 상태는 다음을 통해 복원 할 수 있습니다.
SC Config Servicename Type= share
예 : Windows Management Instrumentation을 별도의 SVCHOST.EXE에서 실행하려면 :
SC Config winmgmt Type= own
이 기술은 메모리 소비를 약간 늘리는 것 외에는 아무런 영향을 미치지 않습니다. 또한 각 서비스의 CPU 사용량을 관찰하는 것 외에도 각 서비스의 페이지 결함 델타, 디스크 I / O 읽기 속도 및 디스크 I / O 쓰기 속도를 쉽게 관찰 할 수 있습니다. 프로세스 탐색기의 경우 열보기 / 선택 메뉴 : 탭 프로세스 메모리 / 페이지 결함 델타, 프로세스 성능 / IO 델타 쓰기 바이트 탭, 각각 프로세스 성능 / IO 델타 읽기 바이트 탭.
대부분의 시스템에는 서비스가 많은 SVCHOST.EXE 프로세스가 하나만 있습니다. 이 순서를 사용했습니다 (명령 행 창에 직접 붙여 넣기 가능).
rem 1. "Automatic Updates"
SC Config wuauserv Type= own
rem 2. "COM+ Event System"
SC Config EventSystem Type= own
rem 3. "Computer Browser"
SC Config Browser Type= own
rem 4. "Cryptographic Services"
SC Config CryptSvc Type= own
rem 5. "Distributed Link Tracking"
SC Config TrkWks Type= own
rem 6. "Help and Support"
SC Config helpsvc Type= own
rem 7. "Logical Disk Manager"
SC Config dmserver Type= own
rem 8. "Network Connections"
SC Config Netman Type= own
rem 9. "Network Location Awareness"
SC Config NLA Type= own
rem 10. "Remote Access Connection Manager"
SC Config RasMan Type= own
rem 11. "Secondary Logon"
SC Config seclogon Type= own
rem 12. "Server"
SC Config lanmanserver Type= own
rem 13. "Shell Hardware Detection"
SC Config ShellHWDetection Type= own
rem 14. "System Event Notification"
SC Config SENS Type= own
rem 15. "System Restore Service"
SC Config srservice Type= own
rem 16. "Task Scheduler"
SC Config Schedule Type= own
rem 17. "Telephony"
SC Config TapiSrv Type= own
rem 18. "Terminal Services"
SC Config TermService Type= own
rem 19. "Themes"
SC Config Themes Type= own
rem 20. "Windows Audio"
SC Config AudioSrv Type= own
rem 21. "Windows Firewall/Internet Connection Sharing (ICS)"
SC Config SharedAccess Type= own
rem 22. "Windows Management Instrumentation"
SC Config winmgmt Type= own
rem 23. "Wireless Configuration"
SC Config WZCSVC Type= own
rem 24. "Workstation"
SC Config lanmanworkstation Type= own
rem End.
svchost.exe
Windows XP 시스템에서 3-4 개의 인스턴스를 발견 합니다. 이것에 나는 6을 본다.
type= own
올바르게 작동하지 않을 수 있으며 암호화 된 파일에 액세스하지 않고 남아있을 수 있습니다. OS 파일이 암호화되어 있으면 치명적입니다!)
내장 tasklist
명령을 사용하고 서비스 이름 ( /fi
스위치) 별로 필터링 할 수 있습니다. 예를 들면 다음과 같습니다.
tasklist /fi "services eq TermService"
산출:
이미지 이름 PID 세션 이름 세션 # Mem 사용법 ========================= ======== ================== = ========== ============ svchost.exe 2940 콘솔 0 7.096 K
이름을 모르는 경우 다음 명령문을 실행하여 이름을 나열 할 수 있습니다.
tasklist /svc /fi "imagename eq svchost.exe"
svchost.exe에서 호스팅하는 모든 서비스를 나열합니다 (예 :
이미지 이름 PID 서비스 ========================= ======== ==================== ============================ svchost.exe 632 DcomLaunch svchost.exe 684 RpcSs svchost.exe 748 DHCP, Dnscache svchost.exe 788 LmHosts, W32Time svchost.exe 804 AeLookupSvc, AudioSrv, 브라우저, CryptSvc, dmserver, EventSystem, helpsvc, lanmanserver, lanmanworkstation, 메신저, Netman, Nla, RasMan, 일정, seclogon, SENS, ShellHWDetection, TrkWks, winmgmt, wuauserv, WZCSVC svchost.exe 1140 ERSvc svchost.exe 1712 원격 레지스트리 svchost.exe 196 W3SVC svchost.exe 2940 TermService svchost.exe 2420 TapiSrv
서비스가 반드시 호스팅하지 않아도됩니다 svchost.exe
. 따라서 실행 파일 이름으로 서비스 필터링을 찾을 수 없으면 그냥 실행하십시오 tasklist /svc
. 모든 서비스가 표시됩니다.
프로세스 탐색기는 실제로 svchost 내의 개별 메모리 사용량을 보여줍니다. http://technet.microsoft.com/en-us/sysinternals/bb896653 의 최신 버전이 있는지 확인하십시오.
프로세스 탐색기를 관리자로 실행하고 검사하려는 svchost를 클릭 한 후 View DLLs
버튼 (또는 CTRL+D)을 클릭하십시오 . 오른쪽 DLL의 창에서 헤더를 클릭 Select Columns...
한 다음 확인 WS Total Bytes
및 히트 OK
.
이제 svchost 내에서 개별 서비스 (dll로 구현)의 메모리 사용량을보고 정렬 할 수 있습니다.
Process Monitor는 범용 유틸리티 (접근을 제외하고는 모든 것을 수행함)이지만이 특정 질문에 대해서는 VMMap (다른 SysInternals 유틸리티)을 사용하려고합니다.
http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx
VMMap은 프로세스 가상 및 실제 메모리 분석 유틸리티입니다. 프로세스의 커밋 된 가상 메모리 유형과 운영 체제가 해당 유형에 할당 한 물리적 메모리 (작업 세트)의 양을 보여줍니다. VMMap은 메모리 사용량을 그래픽으로 표시하는 것 외에도 요약 정보와 자세한 프로세스 메모리 맵을 보여줍니다. 강력한 필터링 및 새로 고침 기능을 사용하면 프로세스 메모리 사용 소스 및 애플리케이션 기능의 메모리 비용을 식별 할 수 있습니다.
VMMap은 라이브 프로세스를 분석하기위한 유연한보기 외에도 모든 정보를 보존하여 다시로드 할 수있는 기본 형식을 포함하여 여러 형식으로 데이터 내보내기를 지원합니다. 또한 스크립트 시나리오를 가능하게하는 명령 줄 옵션도 포함되어 있습니다.
Peter Mortensen의 답변을 여기서 확장합니다. 서비스 유형을 수정하기 전에 다음과 같은 명령으로 기존 유형을 확인하십시오.
sc query wuauserv
다음을 출력합니다 :
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
"10 WIN32_OWN_PROCESS", "20 WIN32_SHARE_PROCESS"이외의 유형은 수정하지 않아야합니다.
서비스를 분리하는 것이 정답이지만 sc config 명령이 작동하지 않았습니다 (2008 R2).
레지스트리를 통해이를 수행 할 수 있습니다. "Type"매개 변수를 0x00000010 (12 월 16 일)으로 설정해야합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\<ServiceName>\Type
어떤 서비스를 수정하기로 선택했는지주의하십시오. "소유"및 "공유"외에 다음과 같이 변경해서는 안되는 특수 유형이 있습니다.
그런 다음 서비스를 다시 시작하면 ProcessExplorer에 이제 자체 svchost.exe 프로세스가 있음을 알 수 있습니다.