We are trying to do a performance test for document upload scenario with a 50 MB file. When we are running the script in a local machine with 100Mbps internet speed, it is matching the response time of manual file upload. However, when we are trying to run the same script in AWS server by limiting the internet bandwidth of Jmeter to 100Mbps, the response time is not matching and is almost half of what we got in local machine.
For limiting internet bandwidth to 100Mbps, we are uncommenting below 2 lines in jmeter.properties file httpclient.socket.http.cps=13107200 httpclient.socket.https.cps=13107200
CPS calculation (100 MB = 102400 KB) So, CPS = 102400 * 128 = 13107200
The response time should be consistent in any machine.
Are you sure that your local test is hitting the limits of bandwidth? Consider measuring other operating system health metrics like CPU, RAM, swap, etc. usage. It can be done using JMeter PerfMon Plugin
It might be the case you use
Javaimplementation of the HTTP Request sampler which doesn't support HTTPResponse time consists of:
so it might be the case AWS instance establishes the initial connection/handshake faster and the document transfer itself happens at the same speed