Win a copy of Practical SVG this week in the HTML/CSS/JavaScript forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

server performance

 
fxdk fxdk
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm setting up something similar to a timeserver on a machine. Programmed in Java.

The machine is an Intel Pentium 4 with 2 CPUs, each one 2.60 GHz, and 512 MB RAM.

What's the maximum number of connections that I can expect before the system slows down considerably, or crashes?

Each connection lasts less than a second.

If I had 100,000 connections per day, would you expect 1 machine to handle it? Or a million?

Any ideas? I'm not sure how to test on such a large scale.
 
Scott Johnson
Ranch Hand
Posts: 518
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator


What's the maximum number of connections that I can expect before the system slows down considerably, or crashes?



That's impossible to say with any certainty. You should run a load test to find out.

I don't think the limitation will be the network stack. It should be able to handle many, many millions of connections per day. The bottleneck will most likely be the application.

Assuming your application is a socket server with a custom protocol, you can write a simple, multithreaded Java client to connect to your server and run it on several PCs.

If you don't want to deal with writing a multithreaded client, you could use JMeter's JavaSampler functionality. You'd have to write a class to excercise the server and let JMeter do the multithreading and reporting.

If your application communicates with clients via HTTP, it's even simpler. Just use one of several load testing tools like JMeter or LoadRunner.
[ July 04, 2006: Message edited by: Scott Johnson ]
 
Virag Saksena
Ranch Hand
Posts: 71
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There are several factors you need to consider ...
#1. What is the acceptable response time threshold
#2. What is the distribution of your service time
#3. What is the distribution of your requests arrival rate

Response time threshold might be described as ... I want to service 90% of my requests within 2 seconds.

Similarly you might describe the service time as being normally distributed with an average of 1 second

Then you plug it into a queueing model and see what is acceptable.

But before you do that it is worth it just doing a sanity check ...
If your connection lasts a second, and assuming it scales with number of CPUs, you can handle a total of 172,800 requests a day. On a rule of thumb, you should be able to run at 90% without significant response time issues if arrival rates are normally distributed. This means you can support about 150,000 requests a day or 6,250 requests per hr.
 
Consider Paul's rocket mass heater.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!