When we send a SOAP request to our customer's SOAP server, we get very different response times on the first call and if exactly 1 minute elapses between 2 calls. It all depends on which machine the client is running on:
Scenario1: Fast - From Developer PC (Windows 10)
1st request: 1.2 seconds
2nd request: 0.4 seconds
Further request within 1 minute: 0.4 seconds
Further requests, if last request is more than 1 minute ago: 0.4 seconds
Scenario 2: Slow - From customer server (Windows Server 2013)
1st request: 15 seconds
2nd request: 0.4 seconds
Further request within 1 minute: 0.4 seconds
Further requests, if last request is more than 1 minute ago: 15 seconds
Scenario 3: Fast - From customer server (Windows Server 2022)
Fast. Same values as in Scenario 1.
The time period when it gets slow is exactly 1 minute.
We are using WCF with .net 4.8.
We made tests from several diffent client PCs with Windows 10 - All of them are fast.
We made tests with SOAP UI from the "slow" customer server. The result was also fast.
The performance problem was caused by the use of a certificate on the server that was not based on a valid root certificate.
In this case, the windows of the client machine is trying to update it's CTL (certificate trust list) on each call. This caused the performance problem.
The problem could be solved, by creating and using a new valid certificate on server and client.
The measured times are now:
1st call: 1,2 sec
Further calls: 0,3 sec
Related
I have an ASP.NET Core 6 Web API which will call WCF on the same server, but different site hosting on IIS.
I now have an issue that when I call WCF (I have tested WCF using SoapUI with same settings too, the result is normal and don't have this issue), I found a long waiting before the call to the WCF service. I have traced the current connections counter in performance monitor and found it like the image below:
I use SoapUI Load Test for testing this, with 50 threads settings at once and runs 2 per thread in SoapUI, and I get this chart for the current connections counter. And the chart is the same as the SoapUI percentage, in the long waiting the percentage keeps 0% and in the peaks the percentage goes up. The response time of the load test leads to nearly 30 seconds due to this long waiting.
I have a PHP page(website hosted in IIS 8.5) which is loading very slow, it takes more than 15 seconds to load.
It connects to a remote SQL server and display the result of the query, i tried executing the query in SQL Management studio and the results are returned within 1 second.
The same page(copied the file) from a different webserver is loading very fast(<1 sec).
I enabled Request Tracing in IIS for the website and when i looked at the results, the time taken for the response is 11000 msec, but the total ms as per the tracing steps is <100 msec.
I dont know where the webpage or IIS is blocked for many seconds before sending the result to client.
I have an application hosted with Openshift and I need it to generate some Excel reports. The report generation process can take a long time (over 5 minutes). This causes the the client to see a 502 error and the request times out. How can and where can I configure my Openshift stack (it is a Java webapp running from Tomcat6) to increase the timeout duration?
5 minutes is an awfully long time for a web request to run. It would be better to have the web request schedule a background job that then notifies the user when the report is done being generated.
I have two REST endpoints driving some navigation in a web site. Both create nearly the same response, but one gets its data straight from the db whereas the other has to ask a search engine (solr) first to get some data and then do the db calls.
If i profile both endpoints via JProfiler i get a higher runtime (approx. 60%) for the second one (about 31ms vs. 53ms). That's as expected.
Profile result:
If i view the same ajax calls from the client side i get a very different picture.
The faster of the both calls takes about 146 ms waiting and network time
The slower of the both calls takes about 1.4 seconds waiting and network
Frontend timing is measured via chrome developer tools. The server is a tomcat 7.0.30 running in STS 3.2. Client and server live on the same system, db and solr are external so there should be no network latency between tomcat and the browser. As a side note: The faster response has the bigger payload (2.6 vs 4.5 kb).
I have no idea why the slower of the both calls takes about 60% more server time but in sum nearly 1000% more "frontend time".
The question is: Is there any way i can figure out where this timing differences originate?
By default, the CPU views in JProfiler show times in the "Runnable" thread state. If a thread reads data from a socket connection or waits for some condition, that time is not included in the "Runnable" thread state.
In the upper right corner of the CPU views there is a thread state selector. If you change that to "All states", you will get times that you can compare with the wall clock times from the browser.
Initial requests are taking 3-5 seconds, subsequent calls takes < 500 milliseconds. Service makes a light weight stored proc call and there is no latency found when we profile it.
This service does not hit very frequently and Idle Time-out of the Process model is 20 minutes (default). We tried to hit it every 19 minutes but no change.
Service running under IIS 7.5 with .Net framework 4.5
The first request for an ASP.NET website always takes some time because the code needs to be compiled. You can install a module for IIS that automatically makes that initial request so you don't get that slowdown yourself.
http://www.iis.net/downloads/microsoft/application-initialization