Yes, I meant that top -H was showing me several ~20 threads for my process (I 
could spot them right away since it's the only process running mono-sgen), but 
the stack dump only listed 4.  Are the rest just idle in the thread pool or 
something so they aren't shown?

On Apr 9, 2013, at 4:37 PM, David Evans wrote:

> top shows you all processes and their threads by default. If you’d like to 
> constrain it to only show you information about a particular process then 
> that is an option too. In linux –p with the process id should restrict output 
> to just that process. Or when listing threads it will then only show you 
> threads within that process. There are some other options to customize top 
> output if you dig into the docs but probably that’s all you need.
>  
> From: Dave Curylo [mailto:[email protected]] On Behalf Of Dave Curylo
> Sent: Tuesday, April 09, 2013 10:55 AM
> To: Rodrigo Kumpera
> Cc: David Evans; [email protected]
> Subject: Re: [Mono-list] Determine what's using CPU
>  
> Thanks Rodrigo and David, this was helpful, this points me to code that could 
> be the issue.  One concern, though, when I use kill -QUIT, my stack dump only 
> shows 4 threads, but when I use top -H, I see many more (about 20).  Where 
> are the rest of the threads listed?
>  
> On Apr 9, 2013, at 12:41 PM, Rodrigo Kumpera wrote:
> 
> 
> You can try to use kill -QUIT to ask mono to produce a full stack dump to 
> stderr.
>  
> 
> On Tue, Apr 9, 2013 at 12:14 PM, David Evans <[email protected]> 
> wrote:
> I usually use "top -H" to get the thread id of the thread that is hogging the 
> CPU. Then I use "top" to get the process id, then connect to that process 
> using gdb and use "info threads" to find the thread number for the thread id 
> that was hogging the CPU. Then I switch to that thread and back trace to see 
> what it's doing, sometimes continuing and breaking a few times as a poor 
> man's sample of different stack traces for what it's doing.
> 
> There are probably better ways of doing this, but that's the simple approach 
> I've used with gdb.
> 
> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Dave Curylo
> Sent: Tuesday, April 09, 2013 8:20 AM
> To: [email protected]
> Subject: [Mono-list] Determine what's using CPU
> 
> I have a process that sporadically becomes unresponsive and starts using a 
> lot of CPU.  Before I thought this was a GC issue, and switched to sgen, but 
> the issue is still there.  I've use gdb with "thread apply all bk" in the 
> past, which pointed me to the GC issues, but now it appears GC isn't really 
> the problem.  Is there some other way to see what is causing the high CPU in 
> gdb or is my only option to start the process with the mono profiler attached?
> _______________________________________________
> Mono-list maillist  -  [email protected] 
> http://lists.ximian.com/mailman/listinfo/mono-list
> _______________________________________________
> Mono-list maillist  -  [email protected]
> http://lists.ximian.com/mailman/listinfo/mono-list
>  
>  

_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to