Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
divyanshu_srivastava3
Active Contributor
0 Kudos
DISCLAIMER: Please do not take 'Throughput' as we all know. For me, and here, it's a measure of performance in terms of GC.
All you see below was an idea that I wrote on paper and I thought of sharing it.
I will try to make this idea more viable and realistic.
Readers and Moderators - Forgive me for something that you don't like and this effort.

Abstract:

This weekend, I was thinking of some way to calculate the 'Throughput' in terms of Garbage Collection for a Server Node.

So, I started related Java with basic mathematics - and came down to derive an equation for 'Throughput'.

Here we have some terms - Two Variables - Non GC Time and GC Time, with the help of which I have written the first equation:


Non GC Time + GC Time = Total Time = Start to current up time

or we can say,

Non GC Time = (Total Time - GC Time)


Now, if I want the throughput, I have to do.....

(Non GC Time/Total Time) *100 = Throughput -- this should me maximum


And hence, my motive is to increase the Throughput

((Total Time - GC Time)/Total Time) * 100 = Throughput -- this should me maximum  > much high


To calculate this GC Time, I have included a new function to find it

i.e.  GC TIme = (N * avgGC Time ), where avgGC Time is what  you calculate from few random  GC runs and  N is the number of GC runs , which again you can get from std_server logs  :razz:


So, now I have a new modified equation:

((Total Time - (N * avgGC Time ))/Total Time) * 100 = Throughput(N)


Now if we include the number of core per CPU

Throughput(N,P) = avg [(Total Time - (N *avgGC Time ))/Total Time) * 100] / P

where P stands for processors number of cores on multiprocessor.


Throughput(N,P) = avg [(Total Time - (N *{Pause Time }))/Total Time) * 100] / P


I then thought of delay, that all I included.

Throughput(N,P) = [(Total Time - (N *{avgGCTime + X(delay)}))/Total Time) * 100] / P

Now, this delay also can be used to include CMS mark times

Also, mark - X is directly proportional to P - one example is delay between polls in a multiprocessing architecture


So, finally I derived an equation to measure GC performance, which I call as Throughput for GC for a server node.


  • Throughput(N,P) = [(Total Time - (N *{avgGCTime + X(delay)}))/Total Time) * 100] / P


Any suggestion for improvement for this novice efforts are always welcome.

I am trying to automate this, and future improved versions, equation on test system, and if it works I will share with you all. My own Wily :wink:


Regards,

Divyanshu

Labels in this area