2013-02-14 6 views
3

윈도우에서는 powershell에서 작업 관리자 또는 Get-Process을 끌어와 메모리 및 CPU 사용량과 함께 실행중인 프로세스 목록을 볼 수 있습니다.Windows 서비스의 메모리/CPU 사용량을 어떻게 볼 수 있습니까?

실행중인 모든 서비스를 볼 수도 있습니다 (Windows 8 또는 Get-Service의 powershell). 그러나 서비스의 경우 해당 번호를 얻지 못합니다.

내 개발자의 관점에서 보았을 때 항상 이렇게 이상하게 보였습니다. 물론 서비스는 더 많은 배포 작업을 필요로하며 코드 작성 및 디버그에는 어색하지만 그렇지 않은 경우 다른 프로그램과 동일한 프로그램 일뿐입니다.

왜 서비스에는 Windows가 서비스를 실행하는 것과 관련이있는 번호가 없는지에 대한 이유가 있습니다. 그 이유는 무엇입니까?

+3

서비스별로 메모리 사용량을 보려면 https://superuser.com/questions/437428/in-windows-7-is-there-a-way-to-know-how-much-memory-a-service를 따르십시오. -is-using –

+2

질문을 재개하기위한 방비에서 : a) 윈도우에서의 서비스가 수퍼 유저의 질문이 아닌지, b) 이미 좋은 대답을 가지고 있는지에 관한 것입니다. 위의 수퍼 유저 링크와 쌍을 이루면 유용하고 관련성이 있습니다. –

+0

@ George Mauer와 (과) 일치합니다. 이것은 여기에 속합니다. – DaveBoltman

답변

2

여러 서비스를 시작/처리 할 수있는 서비스 호스트 프로세스 "svchost.exe"가 있습니다. 리소스 소비는 일반적으로 프로세스 수준에서 운영 체제에 의해 측정되므로 동일한 호스트 프로세스에서 시작된 서비스는 모두 해당 프로세스의 사용으로 표시됩니다.

제어판의 '서비스'영역을보고 서비스를 시작하는 프로그램을 찾으면 대부분의 Windows 서비스가 모두 다른 매개 변수로 "svchost.exe"를 사용하여 시작합니다.

작업 관리자는 svchost.exe의 여러 인스턴스를 표시하므로 특정 서비스를 svchost.exe의 한 인스턴스로 격리 할 수 ​​있지만 을 알고 있어야합니다. 인스턴스가 관심있는 서비스 만 제공하고 있습니다. PowerShell을 사용하여 svchost.exe를 통해 서비스를 시작할 수 있지만 프로세스 ID에 매달린 다음 메모리/CPU 사용량을 볼 수 있도록 작업 관리자에 프로세스 ID 열을 추가하십시오.

+0

그러면 svchost를 죽이면 모든 서비스가 종료됩니다. 서비스가 자체 프로세스로 실행되지 않습니까? 모든 것이 정확히 어떻게 작동합니까? –

+0

일부 서비스는 다른 프로세스에 의해 호스팅 될 수 있습니다. 게다가, 나는 내 상자에서 실행중인 svchost의 12 인스턴스를 세 었는데, 그 중 일부는 아마도 죽이기를 원치 않을 것입니다. 어떤 프로세스에서 어떤 서비스가 실행되고 있는지 알아 내려면 저급 툴이 필요합니다. [System Internals] (http://technet.microsoft.com/en-US/sysinternals)에서 시작하겠습니다. –

+1

문제 해결을 위해 svchost에서 실행되는 서비스를 격리하려는 경우'sc config ServiceName type = own'을 사용하여이를 수행 할 수 있습니다. http://blogs.technet.com/b/ganand/archive/2007/12/23/ 자체 분리 서비스 방법 - scvhost-exe.aspx – sergmat

2

개별 서비스의 메모리 사용량을 보는 방법을 찾지 못했지만 명령 줄에서 tasklist /svc을 사용하여 svchost의 각 인스턴스에서 실행중인 서비스와 메모리 사용량을 볼 수 있습니다 각 개별 svchost의 프로세스 ID를보고