Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Anyone using IIS for sizable sites?

Options
  • 27-07-2021 1:51pm
    #1
    Registered Users Posts: 9,557 ✭✭✭


    I've been working with IIS on and off over the past 10 years, and I'm growing increasingly frustrated by it's performance and scalability.

    Even with small ASP.Net apps with a small user base, CPU usage suddenly gets throttled to 100%, performance is generally poor.

    I'm guessing things in LAMP-land aren't this bad generally?



Comments

  • Registered Users Posts: 54 ✭✭smillingsam


    Yeah, I've been running into the same issues recently, some service running in IIS consumes all the CPU so I have to kill that task, I didn't have much look trying to trace the issue, you can kill the offending service automatically by setting a rule based on CPU in IIS but that didn't work for my needs.



  • Moderators, Business & Finance Moderators Posts: 10,245 Mod ✭✭✭✭Jim2007


    You can write a poorly performing application on any environment. Have you done any analysis to see where exactly the issue is? And what have the developers to to say for themselves???

    And yes I've run banking applications on IIS for a couple of the large mainland European banks in the past, without issues. So no I'd accept that a small ASP.NET application on IIS should be a problem.



  • Registered Users Posts: 9,557 ✭✭✭DublinWriter


    If you Google "IIS throttling the CPU" you'll come across around a dozen possible issues.

    The code isn't the issue as it was independently reviewed by a third-party consultancy.

    At the end of the day, IIS is basically 'serving' ASPX pages. The code-behind isn't trying to calculate Pi to 1024 decimal places on each pageload event.

    Even dedicated worker-processes grow unfeasibly large in terms of memory usage, suggesting some sort of memory leak. but yet again, the code has been gone through with a fine tooth-comb to ensure variables and objects get released, and that's despite C# having its own garbage collection.



  • Registered Users Posts: 24,349 ✭✭✭✭lawred2


    The code isn't the issue as it was independently reviewed by a third-party consultancy.

    What does that mean exactly? In what way was it reviewed? By what metrics? Under what workloads?



  • Registered Users Posts: 4,844 ✭✭✭shootermacg


    There are trade-offs to using Session instead of ViewState/Cookies. Generally if the CPU is hitting 100%, it would indicate either a lot of processing or else a lot of paging (my money's on paging). This happens when your current RAM allocation is getting hammered.



  • Advertisement
  • Registered Users Posts: 9,557 ✭✭✭DublinWriter


    That could a part of what is a compound issue. Client considers 2Gb and 2VCpu sufficient for a W2016 IIS App-server supporting 100+ users.



  • Registered Users Posts: 24,349 ✭✭✭✭lawred2


    That's just about enough to run Windows server on its own



  • Registered Users Posts: 4,844 ✭✭✭shootermacg


    Very easy to test, stop IIS and see what the average RAM usage is. 2GB is really, let's say optimistic :). Fire up IIS, but keep your site's app pool stopped.

    See what the damage is, perfmon is also handy in these situations.



  • Registered Users Posts: 9,557 ✭✭✭DublinWriter


    Client has a very formalised test approach with a cast of dozens. As well as functional testing by a dedicated test team against the original functional specification, there is also a separate code 'walk-through' to look for security vulnerabilities. Once these two phases have been passed, the system goes on for stress-testing using JMeter. Last stage after that is user-acceptance.



  • Registered Users Posts: 9,557 ✭✭✭DublinWriter


    True. Lots of large binary objects getting temporarily stored in session objects. Probably a dedicated session server is required at this stage.



  • Advertisement
  • Registered Users Posts: 4,844 ✭✭✭shootermacg


    You could offload them to the ViewState easily enough, which ups the processing, but lowers the footprint. Personally, I'd increase the cores and the most importantly the RAM. Paging is death to web servers.



  • Registered Users Posts: 4,844 ✭✭✭shootermacg


    Why are you using large objects?



  • Registered Users Posts: 9,557 ✭✭✭DublinWriter


    ....aaaaaaaaand it was a code issue.

    Microsoft is a wonderful company! IIS is a fantastic product!



  • Moderators, Business & Finance Moderators Posts: 10,245 Mod ✭✭✭✭Jim2007


    Wrong again, but not really surprising since find someone to blame rather than understand and solving the issues is your go to solution.



  • Registered Users Posts: 7,410 ✭✭✭jmcc



    LAMPland can be as bad if not worse. Not having used IIS for a very long time, if there's a database being used, it might be worth checking how persistent each session is and if it is a possible resource starvation issue (too many open sessions and unused sessions that haven't been closed etc). As for scalability, that's a different and long discussion.

    Regards...jmcc



  • Registered Users Posts: 24,349 ✭✭✭✭lawred2




  • Registered Users Posts: 9,557 ✭✭✭DublinWriter


    I wouldn't bother, not all of us are happy shiny people.



Advertisement