.NET Forum / ASP.NET / General / December 2006
an application for 1000 users
|
|
Thread rating:  |
Jamunt@gmail.com - 07 Dec 2006 12:57 GMT Hi,
I want to create an application in which around 1000 users will be served at one time. All of the users will be sending around 1 mb of data. I will be parsing that data and would insert some of the data into the database.
Is web service right choice for this kind of web applications. What kind of performance problems i might encounter. Will ASP.net is the right choice for this kind of application . And will IIS 6 is able to stand this kind of web service.
Regards, Jamunt
John Timney (MVP) - 07 Dec 2006 13:33 GMT You'll need to work out how long a transaction takes on the architecture you expect to use. ASP.NET and webservices wont have a problem with that volume of users, but your server hardware and internet pipe may well have.
Read some good articles on planning and design. scale up and architecture
http://msdn2.microsoft.com/en-gb/library/ms979199.aspx
http://msdn2.microsoft.com/en-us/library/aa478997.aspx
-- Regards
John Timney (MVP) VISIT MY WEBSITE: http://www.johntimney.com http://www.johntimney.com/blog
> Hi, > [quoted text clipped - 10 lines] > Regards, > Jamunt Mark Rae - 07 Dec 2006 13:58 GMT > I want to create an application in which around 1000 users will be > served at one time. All of the users will be sending around 1 mb of [quoted text clipped - 5 lines] > right choice for this kind of application . And will IIS 6 is able to > stand this kind of web service. That number of users will not present any sort of challenge to the software you have chosen, so long as your hardware is up to it and you design your system efficiently.
However, it will not do it for you on its own - you'll need to read up on efficient design practices, database concurrency and locking issues, scalability, failover etc...
bruce barker - 07 Dec 2006 18:02 GMT your main issue will be how long the uploads take. a 1000 users are not many for a website, but if the requests take very long then you have a problem. iis will only support about 200 concurrent requests (default config is a lot lower). if some of the users are dialup or use slow networks and you really have 500-1000 concurrent users you will need a web farm. you will want to configure the webservers and asp.net for max connections to limit the number of machines.
-- bruce (sqlwork.com)
> Hi, > [quoted text clipped - 10 lines] > Regards, > Jamunt Jamunt@gmail.com - 08 Dec 2006 08:27 GMT Hi ,
In my scenerio
10 users will upload big chunk of data (8-10 mb) that might take 20 sec - 1 min to process the request.
990 user will upload small data and call might take - 1 sec.
Will web gardening of IIS will help here ?
Regards, Jamunt
> your main issue will be how long the uploads take. a 1000 users are not > many for a website, but if the requests take very long then you have a [quoted text clipped - 20 lines] > > Regards, > > Jamunt Juan T. Llibre - 08 Dec 2006 13:03 GMT You should distinguish between "web garden" and "web farm".
"Web garden" refers to setting affinity for more than one processor in the same machine, so that more processors can process ASP.NET requests.
The ASP.NET QuickStarts explains web gardening well : http://samples.gotdotnet.com/quickstart/aspplus/doc/procmodel.aspx
"Web farm" refers to more than one machine running the same ASP.NET application(s).
If your current server has more than one processor, "web gardening" will help you somewhat, although what will be the main limiting factor is not the server's processing capacity, but its network pipeline capacity, i.e., the bandwidth available for input/output from and to the server.
If your current server has only one processor, you cannot use "web gardening".
If your server has more than one processor, thread processing will improve although I'm not sure you have a processing bottleneck at the levels you describe.
The size and number of the requests you describe are relatively immaterial.
It's their *concurrency* that's really important, as Bruce said.
If you have up to a hundred concurrent requests, and if you have the necessary bandwidth, you should have no problem.
If you have more than that, you should consider a web farm.
Michèle Leroux Bustamante wrote an article named "The Quest for ASP.NET Scalability", which you should review and understand :
http://msdn2.microsoft.com/en-us/library/aa479040.aspx
Michèle explains some of the architectural and design decisions that may affect ASP.NET application scalability. She also explains how you can use Enterprise Services and MSMQ to reduce the effect of those scalability problems. Read the article and download the sample code : http://download.microsoft.com/download/8/0/8/80850c0b-df29-406f-a327-79c4b7c887f 7/msdnscalabilityquest.msi
You may be able to optimize your application -a lot- by implementing some of her recommendations.
This video by Chris Adams, on "Finding IIS Bottlenecks using Server Performance Advisor 2.0" will also be of help :
View the video online : http://www.iis.net/default.aspx?tabid=2&subtabid=26&i=19
Or download it : http://www.iis.net/downloads/webcasts/Technet%20Webcast%20-%20Finding%20IIS%20Bo ttlenecks%20using%20SPA%202.0.wmv
You can download the Server Performance Advisor 2.0 for Windows Server 2003 here : http://www.microsoft.com/downloads/details.aspx?FamilyID=09115420-8c9d-46b9-a9a5 -9bffcd237da2&DisplayLang=en
Juan T. Llibre, asp.net MVP asp.net faq : http://asp.net.do/faq/ foros de asp.net, en español : http://asp.net.do/foros/ ===================================
> Hi , > [quoted text clipped - 34 lines] >> > Regards, >> > Jamunt Mark Rae - 08 Dec 2006 13:46 GMT > "Web garden" refers to setting affinity for more than one processor in the > same > machine, so that more processors can process ASP.NET requests. Does that apply to dual-core processors which, although only one physical unit, are treated as two separate processors by the OS...?
> "Web farm" refers to more than one machine running the same ASP.NET > application(s). If you have a web farm made up of multi-processor machines, can you be gardening while you're farming...?
Juan T. Llibre - 08 Dec 2006 15:12 GMT re:
> Does that apply to dual-core processors which, although only one physical unit, are treated as two > separate processors by the OS...? Interesting question, to which I don't know the answer. If there's true separation between the CPU cores, I'd imagine so.
re:
> If you have a web farm made up of multi-processor machines, can you be gardening while you're > farming...? Yes, and that *will* increase your servers' throughputs.
Juan T. Llibre, asp.net MVP asp.net faq : http://asp.net.do/faq/ foros de asp.net, en español : http://asp.net.do/foros/ ===================================
>> "Web garden" refers to setting affinity for more than one processor in the same >> machine, so that more processors can process ASP.NET requests. [quoted text clipped - 6 lines] > If you have a web farm made up of multi-processor machines, can you be gardening while you're > farming...? Mark Rae - 08 Dec 2006 16:58 GMT > re: >> Does that apply to dual-core processors which, although only one physical >> unit, are treated as two separate processors by the OS...? > > Interesting question, to which I don't know the answer. > If there's true separation between the CPU cores, I'd imagine so. Well, I'm typing this on a machine with an AMD 64-bit dual core chip and, so far as I can see, WinXP treats it as if it were two completely separate processors, even to the extent where there are two separate charts in Task Manager, Performance, CPU usage history...
Device Manager also lists two identical chips...
I'd imagine that ASP.NET gets the number of processors on the machine it's running on from the OS, not from the hardware directly, so I reckon it will see a dual-core chip as two separate processors, thereby allowing web gardening...
Juan T. Llibre - 08 Dec 2006 19:20 GMT re:
> Well, I'm typing this on a machine with an AMD 64-bit dual core chip and, so far as I can see, > WinXP treats it as if it were two completely separate processors, even to the extent where there > are two separate charts in Task Manager, Performance, CPU usage history... > > Device Manager also lists two identical chips... Interesting. Thanks for the info.
I've been considering getting an AMD 64-bit dual core chip.
What is (are?) its processor speed(s) ? Are you happy with its performance ? What type of video card are you using with it ? Are sufficient drivers available for peripherals ? Do 32-bit apps run OK on it ?
That's a lot of questions, so I'll stop... ;-) Thanks for any insight you can provide.
Juan T. Llibre, asp.net MVP asp.net faq : http://asp.net.do/faq/ foros de asp.net, en español : http://asp.net.do/foros/ ===================================
>> re: >>> Does that apply to dual-core processors which, although only one physical unit, are treated as [quoted text clipped - 12 lines] > not from the hardware directly, so I reckon it will see a dual-core chip as two separate > processors, thereby allowing web gardening... Mark Rae - 08 Dec 2006 19:30 GMT > I've been considering getting an AMD 64-bit dual core chip. > > What is (are?) its processor speed(s) ? I think they go from 3800 to 4800: http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_9485_13041,00.html
> Are you happy with its performance ? Yes.
> What type of video card are you using with it ? Unfortunately, an nVidia GeForce 6800. I say "unfortunately" because it doesn't work with Vista - causes BSOD constantly. If nVidia haven't produced decent drivers by the time Microsoft have patched VS.NET 2005 so that it will run properly on Vista, I'll have to get another graphics card...
> Are sufficient drivers available for peripherals ? Yes, apart from the above.
> Do 32-bit apps run OK on it ? Yes, but they run even better on a 64-bit OS. 64-bit SQL Server on 64-bit WinXP positively flies along...
Free MagazinesGet these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...
|
|
|