0
I noticed that my system is slowing down and services.exe often uses quite some CPU (around 10-40%), especially after waking up the PC.
I find it hard to find out more about services.exe, and what is actually causing this issue.
However, I find it suspicious that the services.exe process has over 1,000 threads running. So this may be the first clue. Most of the threads are in RtlValidateHeap:
ntdll.dll!ZwWaitForWorkViaWorkerFactory+0xa
ntdll.dll!RtlValidateHeap+0x3bb
kernel32.dll!BaseThreadInitThunk+0xd
ntdll.dll!RtlUserThreadStart+0x21
So what's the recommended approach to identify issues like that?
Update: It might be that Eclipse or some of the plugins are related to this issue. After shutting down Eclipse, the thread count went down to 100-something, and is back at 1,000+ after restarting.
Without analyzing more of the call stacks of these threads, it's impossible to tell what's going on. My own
services.exe
runs 16 threads right now. So hundreds still sounds a bit excessive. How are you even determining those values? What tool are you using? – Der Hochstapler – 2012-08-02T18:52:25.550I just had a look at Process Explorer. Right now, I have 1,006 threads. Who offers more? ;) Anyway, how to investigate into issues like those? – Markus Junginger – 2012-08-02T18:55:20.793
I also have threads with the identical call stack. I always considered those normal, but have no real clue what they actually do. If you sort the threads by Cycles Delta (so it shows the heavy workers on top), what are the stacks that generate the most work? – Der Hochstapler – 2012-08-02T19:32:27.700
It's the call stack I posted. Just one thread tops the overs:
ntdll.dll!RtlGetFullPathName_U+0x2f5 ntdll.dll!TpAllocWork+0xfc kernel32.dll!CreateThreadpoolWork+0x18 UBPM.dll+0x1216 UBPM.dll!UbpmApiBufferFree+0x1948 UBPM.dll!UbpmApiBufferFree+0x1aba UBPM.dll!UbpmApiBufferFree+0x13b6 ADVAPI32.dll!EnableTrace+0x62a ADVAPI32.dll!EnableTrace+0x329 ADVAPI32.dll!EnableTrace+0x22a ADVAPI32.dll!ProcessTrace+0x1c4 UBPM.dll!UbpmOpenTriggerConsumerHandle+0x4c38 kernel32.dll!BaseThreadInitThunk+0xd ntdll.dll!RtlUserThreadStart+0x21 – Markus Junginger – 2012-08-02T20:19:54.440
The top scorer has around 400,000,000 Delta cycles (ntdll.dll!RtlGetFullPathName_U+0x2f5). After that loads of threads with the stack I posted initially (not much difference in the values). – Markus Junginger – 2012-08-02T20:27:38.687
Do you have any performance analysis or profiling services/applications running? The UBPM.dll and the
EnableTrace
call sounds highly suspicious. – Der Hochstapler – 2012-08-02T21:06:03.063How can I tell? If so, it should be something that survives a restart. I was trying to hunt down another performance issue some time ago, so I ran some performance tools. I don't remember making any persistent changes, but I also cannot rule out that possibility. – Markus Junginger – 2012-08-02T21:28:39.287
1
I have only four
– Synetech – 2012-08-02T21:36:48.623RtlValidateHeap
’s and aTplsTiumerSet
, and aUBPM
just popped in. Try checking to see if you have any non-default tasks scheduled. Also see what the highest memory-using and CPU-using processes are. Also try shutting down each service possible and check if it drops after each one.Your system may be infected with virus. It may be using services.exe to start malware programs. That may be the reason why its thread count is going up. – arundevma – 2012-08-03T09:49:38.670
Using process monitor, I checked services.exe and eclipse.exe for activity. services.exe is doing almost nothing, while eclipse.exe generated 165,000 events within 270s without any user interaction. It's mostly CreateFile, CloseFile, and Query directory. My workspace is huge. – Markus Junginger – 2012-08-08T14:09:25.630