English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
All categories

I need to develop an application server to support more than 100,000 concurrent users, what do i really need in terms of hardware resources? programming techniques? Which is the best programming language to handle such a task. I need a solution that will not have any delays when the clients connect.
Please also enlighten me on areas where i would experience major drawbacks, i.e. Will the processing of concurrent connection get delayed on the Network Card, or the OS level or from the application server level?

2007-02-05 23:54:14 · 2 answers · asked by pgath 1 in Computers & Internet Programming & Design

I need to develop an application server to support more than 100,000 concurrent users, what do i really need in terms of hardware resources? programming techniques? Which is the best programming language to handle such a task. I need a solution that will not have any delays when the clients connect.
Please also enlighten me on areas where i would experience major drawbacks, i.e. Will the processing of concurrent connection get delayed on the Network Card, or the OS level or from the application server level?

Please send me diagrams for the solutions you might offer. Thanks

2007-02-06 00:42:31 · update #1

2 answers

It depends on the type of the application and what the trasactions do.

1. If the transactions do a lot of calculations, then you need to have faster CPUs
2. Since you are saying 100000 users concurrent, then there will be 100000 concurrent sessions on the system which means more memory
3. If you do a lot of disk operations (data read/writes), your disk can become No. 1 bottleneck. So, you have to have a SAN with properly designed disk/LUN layout. Have multiple fiber Channel HBAs operating at 2 GBPS speed.
4. Get multiple network cards operating at 1 GBPS and do a teaming. Ensure these cards are connected to different switches with proper cabling (cat 5 won't be sufficinet to pull a GB network. It should be cat 5e or cat 6)
5. Have your kernel finetuned to sustain 100000 users, corresponding open files.

Unix OS is the best for the above.

Use Oracle as the database. If possible, use RAC (Real Application Cluster) for performance and load balancing.

At the application level, Java will be your best bet. Use middlewares like Websphere for distributed applications.


Your application server (listener) can become a bottleneck. You will need to have multiple instances of them running. Make it multi-threaded so that the transactions complete fast.

If you want more details, add.

2007-02-06 00:02:32 · answer #1 · answered by jaggie_c 4 · 0 1

You really need to post more information. Since there's 100,000 concurrent users, it seems the biggest concern will be getting their data. This becomes a problem if the data is costly to get, either because it has to be computed before it is transfered, or because there is a lot of it. The best way to test what isn't going to work would be to create a dummy client application that creates 100,000 connections and tries to simulate heavy load balance on the system, see if it can keep up. Know what the limitations of the system are before you finish writing a piece of code. Your biggest bottleneck is going to be the server, if it's serving 100,000 connections. Depending on the size of the data, the network will be the next bottleneck. The client will probably experience the least of the problems.

2007-02-06 01:18:45 · answer #2 · answered by Pfo 7 · 0 1

fedest.com, questions and answers