Best Hardware Configuration for ASP.NET Hosting Application [closed] - asp.net

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
We have developed a vacation rental application in ASP.NET with SQL server as DB. Used .NET 3.5 with Entity Framework. Currently QA test this with P4 machine with 2GB RAM. Looks like the processor utilization goes up to 50% for every request. All our DB retrieval timings are < 1 sec. The page load is very slow. We applied all performance tips at IIS level (Compression, Keep Connection Live) and caching to limit the bandwidth (which is normal at 300-500 KB).
We use Telerik RAD Controls for most of the pages. It has been decided that the server hardware is the bottleneck (from HTTP Analyzer measuring the Wait time).
We expect 100 concurrent users 100-200 transactions per second. We run both the IIS & SQL server in the same server at well & hosted in GoDaddy.
The legacy application responds very well at the same server - No EF, Telerik Controls etc.
Can anyone recommend good hardware configuration RAM, CPU Speed etc & what other techniques to speed up the performance?

These days servers are pretty well configured for a good price. You could get a
Xeon Quad,
4 Gig
250+ HDD
Windows Server 2003
Machine for around $200 a month if you look around for offers.
I think this machine is pretty well-configured for your purpose. Did you disable the debug mode while testing?
Were you testing on IIS or in Visual Studio? Testing in Visual Studio does not give you a good representation of the final resource consumption.

Related

.NET Core Website consumes a lot of memory

I have a website that is built on top of ASP.NET .NET Core 2.0 and it worked for 8 months without any issues but 2 days ago i got a message from the host provider that my website is consuming 33GB of RAM which made them suspend my account so i asked them to limit my resources according to my Plan which is only 2GB physical and 4GB Virtual, and that made my website pool stops about 6 or more times per day and i have to restart it manually to get the website back,
i have tested they website using Resharper DotMemory Tool and the Visual Studio
Diagnostic Tools (which i'm new for such operation), and i see that the website start with about 300MB of RAM and it keeps raising while using the website, but its top is 1.1GB RAM as here (
Screenshot)
so i'm not sure what should be the solution as the host provider tells me to upgrade to VPS or optimize my website(that i haven't made any Coding changes for about 3 months (Only Data Entry))

Sql Server Compact Edition 4.0 performance for asp.net website

I'm considering migrating to SQL CE 4.0 for my website projects, all of my sites use Umbraco but they aren't seriously busy websites (up to 15,000 visits month).
My main concern is performance, so I was wondering if anyone had any experience or knowledge on what sort of performance limitations I can expect.
Also, if running in a managed host environment do I need to be concerned about application pool memory limits?
Thanks
The performance of the website should be no problem, because it reads all from cache.
But I'm having trouble with the CMS performance, on my local environment but also on my VPS and on a shared hosting environment. It takes a lot of waiting time before items are created and edited. That's a big issue for my customer right now.
I do run the latest version of Umbraco (4.7.2.1) which should include a lot of performance improvements for SQL CE.
It might get even worse when the datbase size is growing (mine is about 92Mb)

ASP.NET Web Services troubleshooting?

Working with one of our partners, we have developed now two separate sets of web services for their use. The first one was a simple "post to an https URL" style web service, which we facilitated by building a web page in ASP.NET that inspected the arguments in the URL, and then acted accordingly. This "web service" (if you can call it that) has been very stable.
At some point, the partner asked us to begin using SOAP based web services. At their request, we built them a new set of web services largely based on the previous objects, reimplemented as an actual "Web Service". This web service has not been very stable: around once a week, Nagios will alert us that our web service is not responding - and a quick iisreset does the trick.
Analyzing the log output and working in a debugger has not led us to anything concrete. The volume on this new web service is actually much lower than the HTTP web service. I think this could be a code problem or a platform problem, or of course something in between.
We've tried, with little improvement:
To duplicate the behavior in the lab
Debugging in the Visual Studio debugger
Tinkering with IIS options to give it its own application pool
My question, what are the next steps for troubleshooting?
Environment:
Windows Server 2003 Standard Edition R2 Service Pack 2 32 bit, Visual Studio 2005, MS SQL 2005, .NET Framework 2.0.50727
You may get some answers by profiling your webservices and understanding how they are using their resources. perfmon and procmon are both very useful tools in this regard.
EDIT: Since you say errors happen after about a week, the only thing I can think of is resource usage. Ensure your DB connections are being cleaned up, and any opened files (system call to the exe) are being closed.
Also, if your webservices can tolerate it, IIS has a setting that triggers a periodic recycle of an App Pool to handle cases where performance degrades over time. Its dirty, but it may work well for your case.
Since there isn't much to go on - here's another odd issue we came up against regarding our web services.
When the web service stops responding how is memory utilization? We have experienced issues with memory and memory fragmentation relating to busy web services on a system (there was also other things running causing additional fragmentation). When we re-factored the web services to load from smaller dll's and depend on other libraries (instead of one large library) we were able to resolve the memory fragmentation.
To identify what was occurring we would take a dump from the offending iis worker process where the app pool resided and then reviewed that using WinDbg.
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
Additionally we used DebugDiag to take the postmortem dumps.
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1286
Hope this provides another direction to look at.

Windows server 2003 : requirements for website deployment

I have one ASP.NET website having following associated components
ASP.NET framework 3.5
MS Chart
AJAX Components
Connection with external webservice for data
Oracle 10g Enterprise edition
I am going to deploy all web site component, database, email server and FTP service under same hardware.
Here I would like to know what are the required configuration of Windows Server 2003 to meet above requirements, like RAM, Processor, etc.
Please trigger me if I missed inputs.
It depends more on the load, the size, the complexity of the app and the performance expected, than in the components.
I mean: You can run this requirements with modest hardware, but if your app in heavy or your users are thousands, you will need another beast.

How to track IIS server performance

I have a reoccurring issue where a customer calls up and complains that the web site is too slow. Specifically, if they are inactive for a short period of time, then go back to the site, there will be a minute-two minute delay before the user sees a response. (the standard browser is Firefox in this case)
I have Perfmon up and running, the cpu utilization is usually below 20% (single proc...don't ask). The database is humming along. And I'm pulling my hair out.
So, what metrics/tools do you find useful when evaluating IIS performance?
Hope this helps:
Best Practices for Speeding Up Your Web Site
Scaling Strategies for ASP.NET Applications
IIS Tuning
14 Rules for Faster-Loading Web Sites
Best practices for creating websites in IIS 6.0
Stanford Computer Cience - High Performance Web Sites
10 Tips for Writing High-Performance Web Applications
Writing High-Performance Managed Applications : A Primer
Nine tips for a healthy "in production" ASP.NET application
Speedy C#, Part 2: Optimizing Memory Allocations - Pooling and Reusing Objects
Memory Usage Auditing For .NET Applications
Troubleshooting HTTP Compression in IIS 6.0
Maximizing IIS Performance - 25 tips
Optimizing IIS 6.0 Performance
Page Speed - an open-source Firefox/Firebug Add-on
Performance Testing Guidance for Web Applications
Top 10 Performance Improvements in IIS 7.0
CHAPTER 6 Optimizing IIS 6.0 Performance
Performance Tuning Guidelines for Windows Server 2003 - Performance Tuning for IIS 6.0
ASP.NET Performance Tips
IIS 6.0 Tuning for Performance - by Peter A. Bromberg, Ph.D.
Improving .NET Application Performance and Scalability - by MS
Optimizing and Performance Tuning IIS 6.0
12 Steps To Faster Web Pages With Visual Round Trip Analyzer
Thread: IIS 6 performance tweak guide (draft)
CPU Settings for an Application Pool IIS6 e IIS7
Great improvements tips :
Running ASMX Web Services on STA Threads
Scale Net
Measure, measure, measure :
Load Test Your Site
Show Slow
Performance Monitor Wizard
Two Minute Drill: Introduction to XPerf
Suggested Performance Counters to Watch (IIS 6.0)
See what the best sites did :
Benchmarks
TOP 100
More resource :
Learn papers
My experience says:
Enable compression (GZIP/Deflate) in IIS, for Static data. Simple to implement and with excellent results.
if cpu is not your problem try to enable compression for dynamic data as well.
For your particular case, you need to increase the idle-timeout option in IIS because that delay is due to ASP.NET loading the binaries and starting your application. The default is 20 minutes, so if nobody accesses the site for 20 minutes, IIS will shut down the process and the next request will take a long time to start up.
Maybe the application pool is shutting down when there is a period of inactivity? The application pool would take some time to start back up.

Resources