Options
Question for the web guys
I dont think we have many web developers out there, but I'll ask anyway.
We're about to deploy a website/web application that probably needs to handle about 20k concurrent users. My question is, where is the bottleneck in terms of how many users can connect? IIS? SQL? Server itself?
We have IIS7 in W2k8. Database is on SQL2k8 standard on W2k8. I did some preliminary research on it, and was reading that the concurrent users were really limited to fetching the webpage, and then the connection is closed...so a limit of 32k connections would really hold a bit more users than that. Any thoughts?
We're about to deploy a website/web application that probably needs to handle about 20k concurrent users. My question is, where is the bottleneck in terms of how many users can connect? IIS? SQL? Server itself?
We have IIS7 in W2k8. Database is on SQL2k8 standard on W2k8. I did some preliminary research on it, and was reading that the concurrent users were really limited to fetching the webpage, and then the connection is closed...so a limit of 32k connections would really hold a bit more users than that. Any thoughts?
Comments
-
OptionsPash Member Posts: 1,600 ■■■■■□□□□□This isn't really an Web Dev question though. Usually for these high number of concurrent connections you would have some infrastructure guy with solid sql knowledge. I think RK would be able to answer something like this.
Personally ive never worked on a web server with these types of requirements.DevOps Engineer and Security Champion. https://blog.pash.by - I am trying to find my writing style, so please bear with me. -
OptionsRobertKaucher Member Posts: 4,299 ■■■■■■■■■■I dont think we have many web developers out there, but I'll ask anyway.
We're about to deploy a website/web application that probably needs to handle about 20k concurrent users. My question is, where is the bottleneck in terms of how many users can connect? IIS? SQL? Server itself?
We have IIS7 in W2k8. Database is on SQL2k8 standard on W2k8. I did some preliminary research on it, and was reading that the concurrent users were really limited to fetching the webpage, and then the connection is closed...so a limit of 32k connections would really hold a bit more users than that. Any thoughts? -
Optionsit_consultant Member Posts: 1,903If you are supporting 20K users you should have some sort of high availability in place for 100% uptime. Do you have a HA solution? Many times HA solutions can (and should IHMO) include some sort of load/link balancing.
-
Optionsbrad- Member Posts: 1,218it_consultant wrote: »If you are supporting 20K users you should have some sort of high availability in place for 100% uptime. Do you have a HA solution? Many times HA solutions can (and should IHMO) include some sort of load/link balancing.
The two servers that IIS and SQL sit on now are beefy. SQL is a prolaint DL370 with 24GB RAM and 4 quad cores on W2k8/SQL2k8. The web server is W2k8 with 2 quad cores and 8GB. -
Optionsgorebrush Member Posts: 2,743 ■■■■■■■□□□How fast is the internet feed to your planned architecture?
-
Optionsit_consultant Member Posts: 1,903Its actually many more, but we're planning on that many simultaneous. Its a govt site that takes payment for sales tax and some other things. We have a contractor developing it, but we're just trying to think it all out ahead of time so we order the right stuff, if we need to order at all.
The two servers that IIS and SQL sit on now are beefy. SQL is a prolaint DL370 with 24GB RAM and 4 quad cores on W2k8/SQL2k8. The web server is W2k8 with 2 quad cores and 8GB.
There is always that argument between big iron and clustered little servers. In my experience it is important to have high availability for these things if only because you can do maintenance without incurring downtime.
BTW, thats a great piece of hardware. I have several DL370G6 servers under my care. I will never go back to a server that does not have dual port hard drive cabling. -
OptionseMeS Member Posts: 1,875 ■■■■■■■■■□We're about to deploy a website/web application that probably needs to handle about 20k concurrent users. My question is, where is the bottleneck in terms of how many users can connect? IIS? SQL? Server itself?
I'd agree with RK that the answer to this question is "it depends". Much of the "it depends" relates to how it was built and configured in your environment.
For something this significant, one thing that you might do is invest in testing and validation software that can simulate loads on your system. The two big names in that game are HP(Mercury) and IBM(Rational).
You won't truly know how things will perform or where the bottlenecks are until you flip the switch on, but, you can get a better idea of these things before go live by doing effective load testing. You can also do this at interim stages as the application is being built and when significant changes are made.
The point is, it's not a really good idea to build such a significant application and guess at what the bottlenecks might be. You need empirical evidence that shows where the likely bottlenecks are, and that's what effective load and simulation testing will give you.
MS -
OptionsForsaken_GA Member Posts: 4,024I've had to deal with server side of large concurrent users before, and it's not that big of a deal if you prepare for it right. For example, awhile back, Hustler did some Sara Palin parodies. And they were mentioned on Leno. We'd gotten the heads up about 6 hours before the show, so we had a little bit of time to prepare, but not too terribly much.
We'd designed their setup to be able to take hits like this with a little tuning here and there. We went with the many clustered servers solution, several front end web servers with multiple database servers on the backend. The only real hitch we saw didn't have anything to do with concurrent connections, they were spread about on enough machines that it didn't really matter. The major bottleneck was the I/O on the database servers, since they were getting hammered repeatedly. after about 15 minutes of hacking and doing some voodoo with memcache, that was no longer a problem either. -
Optionsbrad- Member Posts: 1,218For something this significant, one thing that you might do is invest in testing and validation software that can simulate loads on your system. The two big names in that game are HP(Mercury) and IBM(Rational).
-
OptionsRobertKaucher Member Posts: 4,299 ■■■■■■■■■■I'd agree with RK that the answer to this question is "it depends". Much of the "it depends" relates to how it was built and configured in your environment.
For something this significant, one thing that you might do is invest in testing and validation software that can simulate loads on your system. The two big names in that game are HP(Mercury) and IBM(Rational).
You won't truly know how things will perform or where the bottlenecks are until you flip the switch on, but, you can get a better idea of these things before go live by doing effective load testing. You can also do this at interim stages as the application is being built and when significant changes are made.
The point is, it's not a really good idea to build such a significant application and guess at what the bottlenecks might be. You need empirical evidence that shows where the likely bottlenecks are, and that's what effective load and simulation testing will give you.
MS
Yes, that sort of testing is really the foundation of proper capacity planning. If you are lucky, brad, you'll get the budget. *sarcasm* I was fortunate enough to get to write our in house load testing software /*sarcasm* and with it and a combination of of SQLIO/SQLIOSim and PerfMon with a dash of Excel I came to the conclusion that yes, I thought our hardware might, maybe be able to handle the expected load. -
OptionsPash Member Posts: 1,600 ■■■■■□□□□□Well maybe it might be worth mentioning if you havent used it already. Apachebench is a great tool for testing your web server element. Works with IIS too.DevOps Engineer and Security Champion. https://blog.pash.by - I am trying to find my writing style, so please bear with me.