We are in a situation of API Micro services architecture.
There is an API endpoint (initialise), which is called by the Native. This “initialise” endpoint is further calling four endpoints.
Since the client has reported an issue of slowness with “initialise”, we decided to check the endpoint with some load test.
After bit of a check with the IIS log “timetaken” field, it has been identified that the response time of one of the api endpoint “customer” called by initialise is slow, varies between 4 to 5 seconds. From code perspective, the “customer” endpoint is taking 300 milliseconds; which is checked through application level logs.
If we have to believe the application level logs and iis timetaken field log, where does the rest of these 3.5 seconds are spent?
After reading through this IIS: How to tell if a slow time-taken is due to a slow network connection, it is advising to check through the wireshark tool. I have not yet gone to this path of asking networking team for packet analysis, but do you see anything else I can also check ?
The same url is also pointing towards enabling HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA (read: https://blogs.msdn.microsoft.com/wndp/2006/08/15/buffering-in-http-sys/) but I don’t know how to enable the same for windows 2008 R2 servers.
Please note that we are using .NET version 4.x with 32bit app pool.
Does somebody know the best way to analyse memory dump (tool to read?) and most importantly, what to see there?
Also, any performance counter that can shed some lights?