directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Berin Loritsch <blorit...@d-haven.org>
Subject Re: [mina] Performance issues
Date Thu, 24 Mar 2005 18:02:09 GMT
Vinod Panicker wrote:
>>Thanks for the update.  Its very encouraging.
> 
> 
> The real fun will be coming when I start with the throughput tests. 
> That will definitely show the real power (or lack thereof) of NIO. 
> Which gets me to the question, how can throughput be effectively
> measured?
> 
> Guys, repeating the call for suggestions for the benchmark suite for
> MINA to make it as real-world a test as possible.
> 

Throughput is always measured in however many tested units per time 
measure. What is going to be a better test?  What exactly are we trying 
to test?

IMO, a world class server spends more effort handling scalability than 
raw performance.  IOW, as important as raw performance is, being able to 
gracefully degrade performance is the most important part of the 
picture.  To me its not so important that we are limited to ~119MB/s 
throughput (the theorhetical maximum of a 1000base-T card) but that the 
clients connected have a fair share of that bandwidth.

I.e. at what point does the system start becoming unusable when the 
connected clients are using their share of bandwidth.

In order to effectively test that, it is best to avoid the overhead of 
serving up files.  It would be better to have a simple PING/PONG style 
of passing data trough.  At that point we are testing the scalability of 
the networking API, and not really instroducing a lot of other variables 
to the equation.  The client can then measure how long it takes for it 
to both send the "PING" request and get a "PONG" response.  The number 
of these simple transactions per second become your throughput per client.

Once you have this data, you can then measure for fairness.  Fairness 
would be the percentage of the smallest throughput to the largest 
throughput.  IOW if there were 1000 transactions/s for the largest and 
990 transactions/s for the smallest the fairness would be 99%.

Another useful metric would be at what point does the server get 
saturated?  If you have a 100mb/s network and 100,000 clients with 100% 
fairness you would only be able to expect a max of 15.65 transactions 
per second (4 bytes out/4 bytes back).  If we are getting .01 
transactions per second then the server has been saturated a while ago 
and we have passed the practical limit.

Mime
View raw message