Replicating your shared hosting App Pool settings in my dev environment

Discussion in 'Site Programming, Development and Design' started by drewnoakes, Mar 29, 2011.

  1. Hello Winhost,

    Firstly, let me just say thanks to you guys. I'm enjoying getting my website up and running with Winhost after several months of developing it on my machine.

    This is my first time using shared hosting and I'm hitting some of the limits you have to place on your infrastructure in order to guarantee a fair and reasonable service to all customers.

    It would be very useful if you published the settings you use for your app pools. My pool is being recycled quite frequently and I can't work out why. ASP tells me the reason is "HostingEnvironment" [1] which isn't very helpful. I could bother you guys to check the event log, but I'd rather just replicate your environment as much as possible on my local machine so I can use the debugger and other tools.

    The ultimate would be if you could provide a screenshot of the Application Pool Advanced Settings window. I've attached an example of the one I mean. It shows pretty much everything, I think.

    Another wall I hit was the SQL governor's limit on query complexity. Could you publish any configuration you have on SQL such that I could apply those limits locally too?

    This would make a great knowledge base article and hopefully reduce the number of support calls I (and others) make of you. It would also mean I can do a better job of testing my site before making it public.

    Many thanks,

    Drew.

    [1] http://stackoverflow.com/questions/5443356/how-to-tell-why-an-iis-application-pool-is-recycled
     

    Attached Files:

  2. Ray

    Ray

    I believe the conditions are told you about should be enough to help you know just what are the conditions we setup our server. The conditions are fairly a standard within the shared hosting industry.
    We are getting final information on the resource governor and we will post it on the kb once we have finalized it.
     
  3. Hi Ray,

    You have, at best, provided a vague indication of what parameters are actually used to govern the shared hosting environment. If these are industry standard, then is it such a stretch to document them or point us to a place where they are documented? I hope you can appreciate that I am trying to provide my users with the best possible experience and necessitates me doing the best quality testing I can.

    Kind Regards,

    Drew
     
  4. Ray

    Ray

    I can certainly let our managers know and discuss with them about creating a kb article that shows what are the conditions set on the servers to protect itself from abusive applications.
     
  5. Thank you

    That would be great. I have tried to replicate the settings you've described on my dev box but I'm finding that my app pools are recycling even more frequently there than on your servers.

    I understand that you value the security of your systems, but I'm pretty sure that what I'm asking for wouldn't expose you to any hacker activity. Of course, don't take my word for it ;)
     
  6. It's unlikely that you'll be able to replicate the environment exactly. 70% of CPU on your dev machine is going to be considerably less than 70% on an $8,000 Dell server (which you would expect), which may be why your application recycles even more frequently in your dev environment. You can approximate, but there are hundreds of variables that are going to be different on a production shared server than they will be in your dev.
     
  7. I agree I won't get it exactly the same. However the primary variables for recycling are all listed in that view and I'd like to recreate it as faithfully on my server as possible.

    My app is not CPU constrained, so I'm not worried about the differences in grunt between the boxes. Any other differences you could highlight that would be relevant would be instructive. I'm thinking my recycling problems are either related to memory usage or this fail-fast behaviour (which I don't know much about.)

    I also have the occasional exception on your infrastructure due to SQL query cost limits, and would like to test against that locally.

    Information on how to configure both of these sets of limitations would be appreciated. My goal is to avoid lodging too many support tickets with you, and to provide my users with the best level of service as I am asking them to trust my brand.
     
  8. I don't know anything about fail-fast either, I've never heard it mentioned in relation to the app pools. Maybe someone else will chime in.

    I am pretty certain though that he SQL query cost limit is 1500 seconds (25 minutes!). That "cost" is an estimate that the SQL server makes for how long it expects a query to take. If the SQL server reports back more than 1500 seconds on that check, the query is canceled.

    In general, when an SQL query takes more than 1500 seconds, the database or the query is not fully optimized. We recommend:
    • Optimizing the query.
    • Adding appropriate index to your database tables. Indexes can greatly increase performance on database queries.
     
  9. Ray

    Ray

    I think for the resource governor, the settings are a little higher than that. I'm confirming with our SA's right now and I will post it up on the forum once I get a confirmation from them.
     
  10. Ray

    Ray

    Just got a confirmation from our SA's and I have to correct my phrase. Its not a resource governor but query governor that will estimate the time on how long a query will take. It is set to 2500 seconds which is about 41 minutes.
     
  11. I have a query that's run for admins of my site only. It's going via Entity Framework and looks quite hairy, but runs in under a second on my box. It must be triggering some kind of heuristic in the estimation to yield some kind of crazy value. I think the exception says the limit is 2500 but my query would take 60,000! That is not the case in practice. I'll try and optimise it and/or report an issue with MS Connect. It makes heavy use of %like% based SQL matching.

    I'm away for a few days but will file a support ticket to find out why the site is recycling.

    Also, if you are not going to post a screenshot of all settings, can you confirm the memory limits please? Are they on private or virtual bytes, and is 200MB actually 200*1000kB or 200*1024kB?
     

Share This Page