website scalability

Discussion in 'General troubleshooting' started by vachaj, Jul 22, 2008.

  1. Folks,

    I am trying to understand what I need to know (or what I don't know) about website scalability and current practices regarding hosting/testing to ensure high levels of concurrency.

    More specifically, I have a fairly new website that is written in C#.net going against MS SQL Server. I have been asked to understand what the effort will be like if we, at some point in the future, need to ensure that we could handle a million users on the site (I am going to assume here that the concurrency required would be much lower.. 10,000 users or 50,000 concurrently)? I also need to know how we would handle redundancy and fail over etc... . Does discount asp.net take care of a lot of this for us or is there significant effort involved in this?

    A friend of mine had a website that got picked up by the press and was down three days because his server couldn't handle it. I can't let that happen so I am looking for very high level guidance on what I need to know to avoid this situation up front. I have tried to avoid issues at the coding level but I still need to avoid issues at the hosting level.

    I have about 20 years experience in corporate IT and worked both as a production DBA/developer/and performance tuning expert (SYBASE) so I should understand what you have to tell me. Unfortunately, my skills are a bit dated, focused on smaller numbers of users, and technology of 5-10 years ago so I am not so familiar with the way web apps are hosted for high currency and redundancy. I am not sure what questions to ask to get started.

    Can anyone give me a starting point on what to think about?

    Jeff
     
  2. Hi,
    Any site that in advance realizes they are going to have 10,000 concurrent hits should consider a dedicated server.
    You get the best bang for your buck here and I've successfully run community sites successfully with DASP.
    Expecting a shared host to handle that kind of traffic for you would be rather, um, risky.


    For the most part it will be your page hits, not the data access, that will need balancing.
    You can always add more data servers, even the cost there is much less thanthe monthly fees for a Dedicated server.


    Overall the determining factor is going to be your budget.

    Nowadays the biggest factors do seem to be concurrent Forum users for a site and getting Farked.
    Just about any site that gets attention on http://www.fark.com/ will get run through the ringer quickly.


    One of my favorite forums, http://www.hdforums.com/, changed their ownership and now the members are bailing.
    The new host has not been able to keep up.

    Code breaks, pages timing out, bugs, they aredrive your visitors away.

    To be frank, I'd host multiple sites with DASP with common domain names, just to break up the traffic.
    I'd still be way ahead of the game vs. paying for a dedicated server. [​IMG]
    Salute,
    Mark
     
  3. I've had some similar growth and scalability concerns myself. Forgive me Jeffif I'm slightly hijacking you're thread, but it seems appropriate to continue the discussion here.

    I'm not personally concerned with getting "farked." If it happens it happens, and it'll just be one of many factors in determine when to upgrade to a better platform. Mark, would you have any guidance or rules of thumb for how many users/page views/visits/whatever a half-decently designed app can handle on DiscountASP.net? At what threshold should a site owner start looking into dedicated? (I'd certainly imagine 10,000 concurrent users would be well beyond the threshold. And probably into dedicated servers territory.)

    I've been very happy with DASP so far and they suit my needs just perfectly for the time being - and who knows for how long - but there are some serious limitations to the service that concerns me. 100MB memory limit that cannot be increased? Only 1 base plan where most additional add-ons are cost prohibitive after a point? (e.g. cheaper to just get a whole additional sql server than to buy 300MB more on your current one)

    I understand that's DASP's niche and they serve it well, but for those of us futuristic thinkers (worriers? [​IMG] ) is there any advice for where to go if/when we begin to outgrow DASP? It's too bad they can't offer "beefier" plans (dedicated or otherwise) or any type of upgrade path within their environment.

    Thanks for the advice on breaking up traffic accross multiple DASP sites - a thought that has occured to me. It may be easy if you wanted to say, install a forum orother veryisolated component, but I can't really see that as a realistic option for general expansion.

    Kurt
     
  4. Hi,
    This is a good chat to discuss, openly.
    From my own experience, I'd create some sort of mirroring once the hits where in the hundreds.
    By that I mean, a page that will consistently have multiple hundred concurrent hits.
    Now that DASP offers U.S. and UK hosting any of us can provide mirroring easily:
    http://weblogs.asp.net/markwisecarver/archive/2008/07/21/net-hosting-in-uk-or-usa-it-s-your-choice.aspx

    That means for about the cost of one months Dedicated hosting we can mirror for an entire year. [​IMG]
    Very exciting.
     
  5. Wait... what kinda of mirroring implementation are you suggesting?

    I mean, if I have mysite.com and it's beginning to show issues due to traffic, I can't just open up a new account and have DASP "load balance" the single mysite.com domain across two (or more) servers right?

    Is there (some other) way to pull it off while maintaining the same, single domain, so it's completely unnoticable from the end users perspective? If so that's news to me! If not, what the heck are you exactly suggesting? :) I don't consider it a feasible solution to use additional domains if that's where you're headed - though regardless I'm curious about what you have to suggest.

    thanks!
     
  6. [​IMG]
    It's not uncommon to see the sort of site mirroring I'm referring to nowadays.
    No I wasn't talking about creating a new site on the fly when trouble arises.
    What I mean is, in advance I start a new gaming community.
    I can guess my traffic will come from the UK and the U.S.
    So in advance I list somewhere on the main page that I have mirrored the files.
    My UK traffic can download from one site, or both.

    All I've had to do was make sure the content was available and monitor the traffic.
    OK, that can be a pretty busy job, but still if done right you can work everything out for your site visitors.
    Salute,
    Mark
     
  7. mjp

    mjp

    A site on our servers, or many shared hosting servers, can withstand a ton of traffic if you are dealing with static files. We host many sites that get a tremendous amount of traffic and use 100's of GB of bandwidth a month. But these are not DNN sites (or other downloadable packages), they are custom built with heavy traffic in mind. The problem arises when you run a complex, off-the-shelf interactive site, or a database-heavy application. Mark mentioned forums, and they are particularly troublesome, though I would suspect that a medium sized forum wouldn't be a problem. But again, it all boils down to the application.

    10,000 concurrent users is quite a target. Unless you're coming out of the box with millions of dollars of advertising or a truly revolutionary concept, I would respectfully suggest that you will not have to worry about traffic that is even remotely close to that. A steady flow of 10,000 concurrent users translates to tens of millions of visits a day. Those are top-ten-sites-on-the-internet kind of numbers. Facebook, for example, gets about 10 million visits per day.

    But shared hosting is a good way to test your concept to see if it is going to fly. If it does, you'll be able to leverage the popularity into more than enough cash to support a switch to dedicated servers. It's painful to move at that point, but maybe not as painful as paying a lot of money for dedicated servers that see very little use.
     
  8. Hi All,

    Let me start by saying that I am very pleased with discountasp.net since I migrated from Gate.com. My site receives over a hundred visitors daily and so far it is holding pretty well. I have professionally worked as a quality assurance engineer, and executed load and stress test on multi tiered systems hosted on RackSpace.

    After a quick test using the open source load test tool, Jmeter, I discovered that discountasp.net accounts limits request handling to 25 concurrent requests. This does not mean you can only have 25 active users at a given time. Active users are defined as the users that have an active session (usually 15 minutes within the last request). With 25 concurrent request limit, your site may serve between 250 - 500 active users. Apache server's default concurrent request handling limit is 250. So if you had a dedicated server you could have ten times more concurrent request handling than your shared hosting account. According to the same calculations one dedicated web server may handle between 2,500 to 5,000 active users at a given time, depending on its RAM capacity and CPU speed. If you need to support more users, you would need a load balanced dedicated server setting or a cloud computing environment that is load balanced automatically. You can also tune your site and reduce users requests (ie. by using user controls).

    When your discoutnasp.net site reaches the maximum request limit, the users will see following error.

    HTTP response code: 503
    HTTP response message: Service Unavailable

    You can use your control panel to see if there were any server errors.



    Hope this helps.
     
  9. Bruce

    Bruce DiscountASP.NET Staff

    We limit the concurrent connection because most site never come close to it; for those that does, it is usually caused by a hung application that hold up the connection. We will increase the concurrent connection if your site on an as-needed basis.
     
  10. Hi,

    I have a similar question. I am currently building an asp.net site for a client that is hosted on DiscountASP.NET (i recommended dasp to them) and I am being asked to give to stress test results/information on traffic load that the website can withstand. Are there any tools i could run that would generate some metrics for them?

    I found this free tool from microsoft (Web Application Stress Tool), but it looks like it has to be run on the web server.
    http://tinyurl.com/4k4gx

    Jmeter mentioned above sounds interesting, is this something i could run on a client to hit the site and generate stress measuring metrics?

    Are there any DiscountASP.NET docs out there that i missed that address scalability of sites hosted here or any info i could pass along about the sites with the most traffic that are hosted on dasp?

    thanks,
    will
     

Share This Page