Should we be using getThreadUserTime? Perhaps that will account for
Thread.sleep as well.

http://stackoverflow.com/questions/1001248/difference-between-thread-user-time-and-thread-cpu-time-in-java

On Tue, Jun 19, 2012 at 8:53 PM, Lasindu Vidana Pathiranage <
[email protected]> wrote:

> I tried testing my code inside CarbonStuckThreadDetectionValve in
> org.wso2.carbon.tomcat.ext in carbon core inside invoke() method. What
> I did was when a thread passes through the valve to inside (Request) I
> measured the CPU time associated with it. When the thread passes again
> through the valve (after completing execution) I again measured the
> thread execution CPU time.
>
>            Long key = Thread.currentThread().getId();
>            ThreadMXBean threadBean = ManagementFactory.getThreadMXBean();
>            System.out.println("Thread ID is : "+ key);
>            System.out.println("Thread Execution CPU time is :
> "+threadBean.getThreadCpuTime(key)/ 1000000 + "ms");
>            System.out.println("Tenant Domain : "+
> Utils.getTenantDomain(request));
>            System.out.println("Request URI : "+ request.getRequestURI());
>
>  System.out.println("-----------------------------------------------");
>
>            getNext().invoke(request, response); // previous code to
> invoke next valve inside invoke() method
>
>            Long key2 = Thread.currentThread().getId();
>            System.out.println("Thread ID is(1) : "+ key2);
>            System.out.println("Thread Execution CPU time is(1) :
> "+threadBean.getThreadCpuTime(key2)/ 1000000 + "ms");
>            System.out.println("Tenant Domain(1) : "+
> Utils.getTenantDomain(request));
>            System.out.println("Request URI(1) : "+
> request.getRequestURI());
>            System.out.println("================================");
>
>
> Output when I tried with a Sample Web Service(with larger calculation
> inside a loop) in Application Server
>
> Thread ID is : 133
> Thread Execution CPU time is : 20ms
> Tenant Domain : lasinduc.com
> Request URI : /carbon/admin/jsp/WSRequestXSSproxy_ajaxprocessor.jsp
> -----------------------------------------------
> Thread ID is : 160
> Thread Execution CPU time is : 0ms
> Tenant Domain : lasinduc.com
> Request URI : /services/t/
> lasinduc.com/SimpleService.SimpleServiceHttpSoap12Endpoint/
> -----------------------------------------------
> Thread ID is(1) : 160
> Thread Execution CPU time is(1) : 1860ms    <--- Can be used as the
> CPU time of the particular request of the tenant
> Tenant Domain(1) : lasinduc.com
> Request URI(1) :
> /services/t/lasinduc.com/SimpleService.SimpleServiceHttpSoap12Endpoint/
> ================================
> Thread ID is(1) : 133
> Thread Execution CPU time is(1) : 30ms
> Tenant Domain(1) : lasinduc.com
> Request URI(1) : /carbon/admin/jsp/WSRequestXSSproxy_ajaxprocessor.jsp
> =================================
>
> Basically what I did was measuring the CPU time of a thread twice
> through a valve. (Before & after hitting axis2). This worked fairly
> well with the tests I did with AS and can be used to measure the CPU
> time per tenant in SLive.
>
> I tried this with sample web applications in the AS as well and worked
> fine and gave fairly measurable amount of time. What I can is to
> filter-in the necessary threads and measure CPU time per thread for a
> particular tenant. (with request URL : /t/lasinduc.com)
>
> What I can do next is to publish this CPU usage statistics per tenant
> to BAM and get the summation of CPU time at the end of the month or at
> any given point of time.
>
> Is there any other way where I could try this out or am I going in the
> right direction?
>
>
>
> Lasindu Charith
> Intern WSO2 Inc.
> Mobile : 94714427192
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>



-- 
*Afkham Azeez*
Director of Architecture; WSO2, Inc.; http://wso2.com
Member; Apache Software Foundation; http://www.apache.org/
* <http://www.apache.org/>**
email: **[email protected]* <[email protected]>* cell: +94 77 3320919
blog: **http://blog.afkham.org* <http://blog.afkham.org>*
twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
*
linked-in: **http://lk.linkedin.com/in/afkhamazeez*
*
*
*Lean . Enterprise . Middleware*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to