Steps for profiling the performance of an azure website

I am brand new to running websites in general. I am familiar with statistical profilers for desktop applications, but I don’t know how to even start website profiling, as there are many additional potential bottlenecks, and I'm not sure if profilers are available for websites.

I looked through and saw useful suggestions on other issues, but I'm not sure that they are a very complete solution. The main suggestions are the azure performance counters and the suggestions from this answer .

To summarize, they: Use firebug to determine the rendering time and load time separately so that you can determine if there is a rendering problem or a server problem.

If the server side: Check out a small static page such as a single gif page. If this happens slowly, there is a problem with the processor. Otherwise, one of them is probably related to IO or has problems with database performance.

You can use performance counters to check server aspects, such as: Memory garbage collection Problems with tcp / ip bytes, sent / received requests, requested, queued, rejected request timeouts, processing time

From my naive point of view, some of the things that seem to be missing from this list are profiling, which has for a traditional desktop application, that is, the stack looked like a percentage of time (that is, what functions we spent time in, and in what context). Another missing element is the profiling of database performance, which seems to be different from azure than in the local environment, especially if you start scaling. Other time is spent on requests from third-party services, although perhaps this can be done using azure performance counters (?).

I apologize for the naivety of this question. What tools and aspects do I not see here to profile the azure MVC asp.net site and what changes would you make to the above list?

+7
performance profiling azure
source share
1 answer

There are many aspects to site profiling in terms of database calls, business logic, presentation visualization, and even client-side performance (for example, any jQuery that can be executed, for example).

StackOverflow MiniProfiler is one of the easiest things to do, just install the NuGet package, add some Javascript and complete whatever you want to check inside using (), and you will see the runtime (including LINQ-to-SQL and EF) . You can even create steps if you want finer timings of individual calls.

The best part about MiniProfiler is that you can enable / disable it based on the environment, which makes it suitable for working inside Azure (unlike Visual Studio Profiler).

You can also look at Azure Performance Counters , which will give you an idea of ​​system resources, but does not profile in the sense that there is a MiniProfiler. This, however, will give you an idea of ​​network latency, processor and memory usage.

Once you are satisfied, you can use the Chrome Developer Tools to profile your client-side application. This will give you an idea of ​​how well your Javascript works, including CSS selector and rendering.

It is also worth noting that Visual Studio has a really good Profiler in some higher versions that can give you a deep understanding of your code. Time spent on methods, number of calls, etc.

Between these four ways you can find most of the bottlenecks, especially for the first pass.

+4
source share

All Articles