# Equation of Throughput for GC on a server node – Abstract

###### 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  😛

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 😉

Regards,

Divyanshu