IIS 7 and Above
MapRequestHandler very slow. How to fix it?
Last post Aug 08, 2017 06:38 AM by Yuk Ding
Jul 22, 2017 09:05 AM|srinigattu|LINK
We have rolled out a classic ASP.Net WebService application with large traffic. Though our database is running quite well (<10 ms response times), most of the time spent in WebServer is in the MapRequestHandler stage.
The issue seems to be in the ASP .Net stack and without any information available on net, I am clueless as to how to go about improving it.
We use SOAP XML payloads for request/response (if that would help in providing a solution).
I tried to remove most of the Handler Mappings (in IIS) except .asmx and few others, but it did not help.
Any help is highly appreciated.
Jul 22, 2017 01:47 PM|lextm|LINK
Don't just focus on failed request tracing.
Analyze IIS log files to check the incoming request pattern. That should tell if there is burst load in a very short period of time, and if you hit that, such delay is expected,
Jul 23, 2017 12:39 PM|srinigattu|LINK
Thanks for your response. Same thing is happening even in an isolated environment with just one request.
We have 4 Production servers and 1 Test server. All servers are showing the same characteristics - with or without load. We use New Relic for monitoring, so we know exactly how much traffic is going through.
It is surely not due to load. It is something within IIS that is wrong.
Jul 24, 2017 07:49 AM|Yuk Ding|LINK
If the issue is caused by IIS, the failed request tracing could log the time taken for the slow event in failed request tracing log. You could enable the failed request tracing log to figure out what's going on there:
If the failed request tracing doesn't display the issue ,you could try this:
Considering the asp.net application need to be compiled, you may need to check whether the slow performance occur only during the first request. The application initialization could help you improve the performance.
Jul 24, 2017 03:48 PM|srinigattu|LINK
Thanks very much for your inputs.
I have installed Perfecto in my test environment. I am still lost as I don't get any info into the MapHandler request.
You can see in the report below. I have expanded the result of 3rd request (just to eliminate the first request slowness scenario). You can see it has taken 2.7s and I have no clue what it did in there.
How can I drill down into this hander and investigate the issue further?
Jul 25, 2017 08:48 AM|Yuk Ding|LINK
I notice the protoc could provide more information in asp.net map handler like this:
If it is an compile issue, it could be displayed.
Also may be the asp.net forum could provide more suggestion:
Jul 25, 2017 11:36 AM|srinigattu|LINK
I would like to get the drill-down similar to what's mentioned in the post.
What changes do I need to do in Perfecto files to get drill down on MapHandler?
Jul 25, 2017 12:56 PM|Rovastar|LINK
I don't know what Perfecto is and I doubt anyone else here does either. I would connect them or use there support network to see what is available.
Built into IIS is the failed request tracing and that is the first point of call for checking what is happening. It may be the same results but you should check there.
For further tools I use LeanSentry https://www.leansentry.com/
This is the most detailed I have seen for drilling down into Microsoft environments.
Aug 08, 2017 06:38 AM|Yuk Ding|LINK
I'm sorry that I' not sure how to get the drill-down in perfecto while it doesn't belong to IIS. However, I noticed that most of the time the asp.net compile process occupy the most of the time. So you may need to check whether your application require such
a long time. In addition, precompile for web application could be very important.