timing difference for large (?) requests

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

timing difference for large (?) requests

Alexander Podelko
Hi,
Moving one my script to JMeter (3.3) I noticed a significant timing difference for some requests (between JMeter and measurements / other tools).  
For example, here is what I see in Fiddler for one request:

POST http://xxx:9000/epm/ui-rest/v1/requests/52ea978d-e94d-4d37-8d2d-5b9049bd2916/import HTTP/1.1Host: xxx:9000Connection: keep-aliveContent-Length: 157Accept: */*Origin: <a href="http://xxx:9000Timezone:">http://xxx:9000Timezone: America/DenverX-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36Content-Type: application/jsonReferer: http://xxx:9000/epm/?root=workarea&workarea=view&id=ui-rest%2Fv1%2Fviews%2F4c819c71-4cb4-4498-ad2d-7c93a3ec6b7dAccept-Encoding: gzip, deflateAccept-Language: en-US,en;q=0.9Cookie: EPM_Remote_User=b8e6T+U6DAXmDCZyx8WntMnvce/g39f2Di5KKPTe9yS2jvCmac6KM11weVtqKwEY; JSESSIONID=TZviFRa7mudww7e1LIFyialL8CIo6MZS2Nu9yjyw6AYUCObhMgCt!-236747468
{"fileUri": "http://xxx:9000/epm/ui-rest/v1/requests/52ea978d-e94d-4d37-8d2d-5b9049bd2916/attachments/importFile/b94d2b50-d529-4a01-afb9-2bfdd0d78a4f" }

Request Count:   1Bytes Sent:      950 (headers:793; body:157)Bytes Received:  7,065,667 (headers:550; body:7,065,117)
ACTUAL PERFORMANCE--------------ClientConnected: 15:06:58.147ClientBeginRequest: 15:07:11.094GotRequestHeaders: 15:07:11.094ClientDoneRequest: 15:07:11.094Determine Gateway: 16msDNS Lookup:  0msTCP/IP Connect: 0msHTTPS Handshake: 0msServerConnected: 15:07:10.964FiddlerBeginRequest: 15:07:11.095ServerGotRequest: 15:07:11.095ServerBeginResponse: 15:08:26.158GotResponseHeaders: 15:08:26.158ServerDoneResponse: 15:08:26.210ClientBeginResponse: 15:08:26.222ClientDoneResponse: 15:08:26.227
 Overall Elapsed: 0:01:15.132
RESPONSE BYTES (by Content-Type)--------------application/json: 7,065,117       ~headers~: 550

and here is what I see in JMeter (from the same machine):
POST http://xxx:9000/epm/ui-rest/v1/requests/b079bd62-4964-4adf-8564-d35ec33d0993/import
POST data:{"fileUri": "http://xxx:9000/epm/ui-rest/v1/requests/b079bd62-4964-4adf-8564-d35ec33d0993/attachments/importFile/5eb5f197-ebfb-4de1-8238-35ad0060d857" }
 Cookie Data:
EPM_Remote_User=UngMo7mbHE9R5SdofArYMZO44fBaRL3QcmxFT6e5kmnPp0a5QV5IbXoJFJmVCCzf; JSESSIONID=7GHhvdbivYNGxwfwd2MPPbsoFpj3hzd5nGD4_nE1RjeaAx_TT1tG!-236747468
Request Headers:Connection: keep-aliveReferer: http://xxx:9000/epm/?root=workarea&workarea=view&id=ui-rest%2Fv1%2Fviews%2F4c819c71-4cb4-4498-ad2d-7c93a3ec6b7dAccept-Language: en-US,en;q=0.5Timezone: America/DenverX-Requested-With: XMLHttpRequestContent-Type: application/jsonAccept-Encoding: gzip, deflateUser-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0Accept: */*Content-Length: 157Host: xxx:9000


Thread Name: Thread Group 1-1Sample Start: 2018-01-10 13:28:41 MSTLoad time: 37327Connect Time: 0Latency: 37272Size in bytes: 7065667Sent bytes:863Headers size in bytes: 550Body size in bytes: 7065117Sample Count: 1Error Count: 0Data type ("text"|"bin"|""): textResponse code: 200Response message: OK
Response headers:HTTP/1.1 200 OKCache-Control: no-cache, no-store, max-age=0, must-revalidateDate: Wed, 10 Jan 2018 20:28:41 GMTPragma: no-cacheTransfer-Encoding: chunkedContent-Type: application/jsonExpires: 0Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCHP3P: X-CONTENT-TYPE-OPTIONS:nosniffX-XSS-Protection: 1; mode=blockAccess-Control-Allow-Headers: X-Requested-With, Content-TypeX-Content-Type-Options: nosniffAccess-Control-Allow-Origin: *Content-Language: en-USX-Powered-By: Servlet/2.5 JSP/2.1X-Frame-Options: DENY

HTTPSampleResult fields:ContentType: application/jsonDataEncoding: null

So in JMeter it takes 37 sec while in the real product (and another load testing tool) it takes ab. 75 sec. I see some difference in other requests too, but this one looks as a better example (my guess is that the difference becomes bigger for larger requests - and this one returns 7M). Everything inside a single data center, latency (ping) < 1 ms. 
Any thoughts?
Thanks,Alex
Reply | Threaded
Open this post in threaded view
|

Re: timing difference for large (?) requests

Ivan Rancati-3
Very interesting. If I read right the numbers, the difference between
Fiddler and JMeter is in the latency

Time between begin and end of the server response: nearly identical
JMeter
Load time 37327-Latency 37272 = 55 ms
Fiddler
ServerDoneResponse: 15:08:26.210 - ServerBeginResponse: 15:08:26.158 = 52 ms

Latency: big difference
JMeter
37272 ms
Fiddler
ServerBeginResponse: 15:08:26.158 - ClientDoneRequest: 15:07:11.094 = 1m 15064
ms

It's a long shot, but could it have to do with the different "q" parameter
for quality in the Accept-Language header?
q = 0.9 for Fiddler, 0.5 for JMeter

cheers
Ivan


On Wed, Jan 10, 2018 at 11:32 PM, Alexander Podelko <
[hidden email]> wrote:

> Hi,
> Moving one my script to JMeter (3.3) I noticed a significant timing
> difference for some requests (between JMeter and measurements / other
> tools).
> For example, here is what I see in Fiddler for one request:
>
> POST http://xxx:9000/epm/ui-rest/v1/requests/52ea978d-e94d-
> 4d37-8d2d-5b9049bd2916/import HTTP/1.1Host: xxx:9000Connection:
> keep-aliveContent-Length: 157Accept: */*Origin: <a href="http://xxx:9000Timezone:">http://xxx:9000Timezone:
> America/DenverX-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0
> (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
> Chrome/63.0.3239.132 Safari/537.36Content-Type: application/jsonReferer:
> http://xxx:9000/epm/?root=workarea&workarea=view&id=ui-
> rest%2Fv1%2Fviews%2F4c819c71-4cb4-4498-ad2d-7c93a3ec6b7dAccept-Encoding:
> gzip, deflateAccept-Language: en-US,en;q=0.9Cookie: EPM_Remote_User=b8e6T+
> U6DAXmDCZyx8WntMnvce/g39f2Di5KKPTe9yS2jvCmac6KM11weVtqKwEY; JSESSIONID=
> TZviFRa7mudww7e1LIFyialL8CIo6MZS2Nu9yjyw6AYUCObhMgCt!-236747468
> {"fileUri": "http://xxx:9000/epm/ui-rest/v1/requests/52ea978d-e94d-
> 4d37-8d2d-5b9049bd2916/attachments/importFile/b94d2b50-d529-4a01-afb9-
> 2bfdd0d78a4f" }
>
> Request Count:   1Bytes Sent:      950 (headers:793; body:157)Bytes
> Received:  7,065,667 (headers:550; body:7,065,117)
> ACTUAL PERFORMANCE--------------ClientConnected: 15:06:58.147ClientBeginRequest:
> 15:07:11.094GotRequestHeaders: 15:07:11.094ClientDoneRequest:
> 15:07:11.094Determine Gateway: 16msDNS Lookup:  0msTCP/IP Connect: 0msHTTPS
> Handshake: 0msServerConnected: 15:07:10.964FiddlerBeginRequest:
> 15:07:11.095ServerGotRequest: 15:07:11.095ServerBeginResponse: 15:08:26.158GotResponseHeaders:
> 15:08:26.158ServerDoneResponse: 15:08:26.210ClientBeginResponse: 15:08:26.222ClientDoneResponse:
> 15:08:26.227
>  Overall Elapsed: 0:01:15.132
> RESPONSE BYTES (by Content-Type)--------------application/json:
> 7,065,117       ~headers~: 550
>
> and here is what I see in JMeter (from the same machine):
> POST http://xxx:9000/epm/ui-rest/v1/requests/b079bd62-4964-
> 4adf-8564-d35ec33d0993/import
> POST data:{"fileUri": "http://xxx:9000/epm/ui-rest/
> v1/requests/b079bd62-4964-4adf-8564-d35ec33d0993/attachments/importFile/
> 5eb5f197-ebfb-4de1-8238-35ad0060d857" }
>  Cookie Data:
> EPM_Remote_User=UngMo7mbHE9R5SdofArYMZO44fBaRL
> 3QcmxFT6e5kmnPp0a5QV5IbXoJFJmVCCzf; JSESSIONID=
> 7GHhvdbivYNGxwfwd2MPPbsoFpj3hzd5nGD4_nE1RjeaAx_TT1tG!-236747468
> Request Headers:Connection: keep-aliveReferer: http://xxx:9000/epm/?root=
> workarea&workarea=view&id=ui-rest%2Fv1%2Fviews%2F4c819c71-4cb4-4498-ad2d-
> 7c93a3ec6b7dAccept-Language: en-US,en;q=0.5Timezone:
> America/DenverX-Requested-With: XMLHttpRequestContent-Type:
> application/jsonAccept-Encoding: gzip, deflateUser-Agent: Mozilla/5.0
> (Windows NT 6.3; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0Accept:
> */*Content-Length: 157Host: xxx:9000
>
>
> Thread Name: Thread Group 1-1Sample Start: 2018-01-10 13:28:41 MSTLoad
> time: 37327Connect Time: 0Latency: 37272Size in bytes: 7065667Sent
> bytes:863Headers size in bytes: 550Body size in bytes: 7065117Sample Count:
> 1Error Count: 0Data type ("text"|"bin"|""): textResponse code: 200Response
> message: OK
> Response headers:HTTP/1.1 200 OKCache-Control: no-cache, no-store,
> max-age=0, must-revalidateDate: Wed, 10 Jan 2018 20:28:41 GMTPragma:
> no-cacheTransfer-Encoding: chunkedContent-Type: application/jsonExpires:
> 0Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCHP3P:
> X-CONTENT-TYPE-OPTIONS:nosniffX-XSS-Protection: 1;
> mode=blockAccess-Control-Allow-Headers: X-Requested-With,
> Content-TypeX-Content-Type-Options: nosniffAccess-Control-Allow-Origin:
> *Content-Language: en-USX-Powered-By: Servlet/2.5 JSP/2.1X-Frame-Options:
> DENY
>
> HTTPSampleResult fields:ContentType: application/jsonDataEncoding: null
>
> So in JMeter it takes 37 sec while in the real product (and another load
> testing tool) it takes ab. 75 sec. I see some difference in other requests
> too, but this one looks as a better example (my guess is that the
> difference becomes bigger for larger requests - and this one returns 7M).
> Everything inside a single data center, latency (ping) < 1 ms.
> Any thoughts?
> Thanks,Alex
>
Reply | Threaded
Open this post in threaded view
|

Re: timing difference for large (?) requests

sebb-2-2
Or the way the latency is measured, as that will depend on the protocol stack.

On 11 January 2018 at 17:20, Ivan Rancati <[hidden email]> wrote:

> Very interesting. If I read right the numbers, the difference between
> Fiddler and JMeter is in the latency
>
> Time between begin and end of the server response: nearly identical
> JMeter
> Load time 37327-Latency 37272 = 55 ms
> Fiddler
> ServerDoneResponse: 15:08:26.210 - ServerBeginResponse: 15:08:26.158 = 52 ms
>
> Latency: big difference
> JMeter
> 37272 ms
> Fiddler
> ServerBeginResponse: 15:08:26.158 - ClientDoneRequest: 15:07:11.094 = 1m 15064
> ms
>
> It's a long shot, but could it have to do with the different "q" parameter
> for quality in the Accept-Language header?
> q = 0.9 for Fiddler, 0.5 for JMeter
>
> cheers
> Ivan
>
>
> On Wed, Jan 10, 2018 at 11:32 PM, Alexander Podelko <
> [hidden email]> wrote:
>
>> Hi,
>> Moving one my script to JMeter (3.3) I noticed a significant timing
>> difference for some requests (between JMeter and measurements / other
>> tools).
>> For example, here is what I see in Fiddler for one request:
>>
>> POST http://xxx:9000/epm/ui-rest/v1/requests/52ea978d-e94d-
>> 4d37-8d2d-5b9049bd2916/import HTTP/1.1Host: xxx:9000Connection:
>> keep-aliveContent-Length: 157Accept: */*Origin: <a href="http://xxx:9000Timezone:">http://xxx:9000Timezone:
>> America/DenverX-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0
>> (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
>> Chrome/63.0.3239.132 Safari/537.36Content-Type: application/jsonReferer:
>> http://xxx:9000/epm/?root=workarea&workarea=view&id=ui-
>> rest%2Fv1%2Fviews%2F4c819c71-4cb4-4498-ad2d-7c93a3ec6b7dAccept-Encoding:
>> gzip, deflateAccept-Language: en-US,en;q=0.9Cookie: EPM_Remote_User=b8e6T+
>> U6DAXmDCZyx8WntMnvce/g39f2Di5KKPTe9yS2jvCmac6KM11weVtqKwEY; JSESSIONID=
>> TZviFRa7mudww7e1LIFyialL8CIo6MZS2Nu9yjyw6AYUCObhMgCt!-236747468
>> {"fileUri": "http://xxx:9000/epm/ui-rest/v1/requests/52ea978d-e94d-
>> 4d37-8d2d-5b9049bd2916/attachments/importFile/b94d2b50-d529-4a01-afb9-
>> 2bfdd0d78a4f" }
>>
>> Request Count:   1Bytes Sent:      950 (headers:793; body:157)Bytes
>> Received:  7,065,667 (headers:550; body:7,065,117)
>> ACTUAL PERFORMANCE--------------ClientConnected: 15:06:58.147ClientBeginRequest:
>> 15:07:11.094GotRequestHeaders: 15:07:11.094ClientDoneRequest:
>> 15:07:11.094Determine Gateway: 16msDNS Lookup:  0msTCP/IP Connect: 0msHTTPS
>> Handshake: 0msServerConnected: 15:07:10.964FiddlerBeginRequest:
>> 15:07:11.095ServerGotRequest: 15:07:11.095ServerBeginResponse: 15:08:26.158GotResponseHeaders:
>> 15:08:26.158ServerDoneResponse: 15:08:26.210ClientBeginResponse: 15:08:26.222ClientDoneResponse:
>> 15:08:26.227
>>  Overall Elapsed: 0:01:15.132
>> RESPONSE BYTES (by Content-Type)--------------application/json:
>> 7,065,117       ~headers~: 550
>>
>> and here is what I see in JMeter (from the same machine):
>> POST http://xxx:9000/epm/ui-rest/v1/requests/b079bd62-4964-
>> 4adf-8564-d35ec33d0993/import
>> POST data:{"fileUri": "http://xxx:9000/epm/ui-rest/
>> v1/requests/b079bd62-4964-4adf-8564-d35ec33d0993/attachments/importFile/
>> 5eb5f197-ebfb-4de1-8238-35ad0060d857" }
>>  Cookie Data:
>> EPM_Remote_User=UngMo7mbHE9R5SdofArYMZO44fBaRL
>> 3QcmxFT6e5kmnPp0a5QV5IbXoJFJmVCCzf; JSESSIONID=
>> 7GHhvdbivYNGxwfwd2MPPbsoFpj3hzd5nGD4_nE1RjeaAx_TT1tG!-236747468
>> Request Headers:Connection: keep-aliveReferer: http://xxx:9000/epm/?root=
>> workarea&workarea=view&id=ui-rest%2Fv1%2Fviews%2F4c819c71-4cb4-4498-ad2d-
>> 7c93a3ec6b7dAccept-Language: en-US,en;q=0.5Timezone:
>> America/DenverX-Requested-With: XMLHttpRequestContent-Type:
>> application/jsonAccept-Encoding: gzip, deflateUser-Agent: Mozilla/5.0
>> (Windows NT 6.3; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0Accept:
>> */*Content-Length: 157Host: xxx:9000
>>
>>
>> Thread Name: Thread Group 1-1Sample Start: 2018-01-10 13:28:41 MSTLoad
>> time: 37327Connect Time: 0Latency: 37272Size in bytes: 7065667Sent
>> bytes:863Headers size in bytes: 550Body size in bytes: 7065117Sample Count:
>> 1Error Count: 0Data type ("text"|"bin"|""): textResponse code: 200Response
>> message: OK
>> Response headers:HTTP/1.1 200 OKCache-Control: no-cache, no-store,
>> max-age=0, must-revalidateDate: Wed, 10 Jan 2018 20:28:41 GMTPragma:
>> no-cacheTransfer-Encoding: chunkedContent-Type: application/jsonExpires:
>> 0Access-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCHP3P:
>> X-CONTENT-TYPE-OPTIONS:nosniffX-XSS-Protection: 1;
>> mode=blockAccess-Control-Allow-Headers: X-Requested-With,
>> Content-TypeX-Content-Type-Options: nosniffAccess-Control-Allow-Origin:
>> *Content-Language: en-USX-Powered-By: Servlet/2.5 JSP/2.1X-Frame-Options:
>> DENY
>>
>> HTTPSampleResult fields:ContentType: application/jsonDataEncoding: null
>>
>> So in JMeter it takes 37 sec while in the real product (and another load
>> testing tool) it takes ab. 75 sec. I see some difference in other requests
>> too, but this one looks as a better example (my guess is that the
>> difference becomes bigger for larger requests - and this one returns 7M).
>> Everything inside a single data center, latency (ping) < 1 ms.
>> Any thoughts?
>> Thanks,Alex
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]