2013-11-05 2 views
0

여러 스레드 (약 4-5 스레드)가있는 Windows 서비스를 만들었습니다. 특정 내부에서 생성 된이 서비스 스레드에서 중단됩니다. 스레드가 작성되면 일부 I/O 조작 & db 조작을 수행합니다.여러 스레드 성능 모니터링

이 서비스에 필요한 구성을 제공하는 GUI가 있습니다. 이 GUI에서는 모든 스레드와 관련하여 Windows 서비스의 성능을 보여주는 하나 이상의 기능을 추가하려고합니다. 메모리 사용률과 함께 CPU 사용률 (모든 프로세서 사용률보다 멀티 코어 프로세서를 사용할 수있는 경우)을 표시하려고합니다.

Windows 작업 관리자를 살펴보면 CPU (코어 단위 기준) + 메모리 사용률이 표시되지만 Windows 서비스가 실행중인 스레드에 대해서만 동일한 것을 빌드하려고합니다.

스레드 당 CPU % 및 메모리 사용률을 얻는 방법을 알려줄 수 있습니까?

+0

http://stackoverflow.com/q/1393006/56778 및 http://technet.microsoft.com/en-us/library/cc938601.aspx를 참조하십시오. –

답변

0

당신은 스레드의 CPU 및 메모리 활용도를 얻을 수 없다고 생각합니다. 대신 당신은 당신의 서비스에 대해 같은 것을 얻을 수 있습니다.

내 질문에 SysInternals 프로세스 탐색기가 더 자세한 정보를 제공하는 이유는 무엇입니까? 특정 요구 사항?

스레드 활동을 모니터링해야하는 경우 Log4net 또는 기타 로깅 도구를 사용하여 일부 정보를 더 잘 기록 할 수 있습니다. 이렇게하면 스레드와 스레드가 수행하는 작업에 대한 아이디어를 얻을 수 있습니다.

더 구체적으로 말하자면, 응용 프로그램에서 수신 할 수있는 TelNetAppender를 사용하여 로그를 게시 할 수 있습니다. 이렇게하면 실시간으로 프로세스를 조사하는 데 도움이됩니다.