Technology Blog Posts by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
divyanshu_srivastava3
Active Contributor
0 Likes
1,605
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