I created the following Test Scenario under Ubuntu:
Thread 100 Vus
Ram-Up Period Time:400s
Loop:1
BZM-Streaming Sampler (video Duration:12seconds)
Jmeter Version:5.2.1
I configure the Heap Size on the file named jmeter under bin Folder:
: "${HEAP:="-Xms8192m -Xmx8192m -XX:MaxMetaspaceSize=256m"}"
the amazing is when I change the Video Streaming Duration to 6 seconds instead of 12 seconds the test works.
I mean every audio and video segment takes 2 seconds approximtatively, so I come to this operation:
100 Vus * 6 seconds = 600s / 60minutes = 10 minutes (the whole test takes 22 minutes).
why the test doesn't stop with a Video duration of 12 seconds? I mean the duration is too short for the test!!
What did I miss here... are the Heap size not configured correctly? what is wrong here? in the log I have no java.lang.OutOfMemoryError: Java heap space Issue
Your question doesn't provide sufficient information so we cannot come up with at least a guess, going forward you will need to provide the following essential information:
Is it HLS or MPEG-DASH
Your playlist URL
The relevant parts of jmeter.log file, pay attention to any Problem downloading .... segment warnings. You may need to increase logging verbosity by adding the next line to log4j2.xml file:
<Logger name="com.blazemeter.jmeter.videostreaming" level="debug"/>
Your streaming sampler full configuration
In any case make sure to use the latest version of the plugin (HLS Plugin 3.0 has been released recently), you can always upgrade to the most recent version using JMeter Plugins Manager
Also be aware that you can reach out to JMeter Plugins developers and/or maintainers at JMeter Plugins Support Forum.
Related
I have an issue when running load tests using JMeter - the response peaks every ~5 minutes. These response time peaks are repeating in every run and for different processes or even single endpoints.
Below is the response time graph for one of the endpoints I am testing. The graph shows merged results of 4 different runs and the response time peaks are present in all of them - repeating every ~5 minutes.
The test configuration is 100 users, ramp-up time 3500s and thread duration 3600s.
Response time graph
This can also be observed in response time vs threads graph:
Response time vs threads
This looks like some JMeter misconfiguration, but I couldn't find any relevant info for such repeating peaks.
Re-run your test with:
Monitoring your operating system metrics like CPU, RAM, Network, Disk, etc. usage as it might be a third-party periodic activity which has an impact. The majority of operating systems have monitoring toolchains out of the box, if yours don't - you can consider using JMeter PerfMon Plugin
Doing the same for the JVM metrics using a tool like JVisualVM or equivalent (the aforementioned JMeter PerfMon Plugin can read the statistics via JMX) as the pattern you're getting looks like a full GC
Doing the same for the system under test as it might be the case JMeter works just fine and the problem is on the application side.
If you confirm that the problem is in JMeter:
Make sure to follow JMeter Best Practices
If you have followed them already and the issue is still there - you might have to switch to Distributed Testing
As I am increasing the load, the request which are failing to get a response is increasing and for 99% of the requests which are failing has a latency 0f 30 secs. Can anyone please help me with this?enter image description here
Help you with what? Fixing your application bottlenecks?
If the issue is not reproducible with 1 user or lesser load (I see successful requests with up to 50 seconds response time) it means that your application is overloaded and cannot handle 70 concurrent users.
The reasons could be in:
Lack of resources on application under test side, check if there's enough CPU, RAM, etc. It can be done using JMeter PerfMon Plugin
Inspect your application logs and configuration, it might be the case it needs to be tuned for high loads
If there is an APM tool - check application/database/middleware metrics. If not - consider re-running your test with profiler tool telemetry enabled
With regards to your JMeter test:
Don't run your test in GUI mode, it's only for scripts development and debugging
Remove all the listeners, they don't add any value and just consume valuable resources
I recently installed Jmeter 5.3, and while running a test, i noticed that each request has a delay of 4 seconds, even though I do not have an delay thread anywhere. If i run the same test in Jmeter 5.2.1, I do not see any delay, and every request works fine.
Any inputs?
Looking into JMeter Changelog there were only 2 non-cosmetic changes between versions 5.2.1 and 5.3:
Changing default value of the httpclient4.time_to_live property from 2 seconds to 1 minute in order to be in line with modern browsers default settings, can be reverted via user.properties file
Upgrading Groovy library to version 3 from version 2, can be reverted by removing all grooovy-xxxx.jar libraries from "lib" folder of your JMeter installation and replacing them with groovy-all-2.4.16.jar
None of the changes gives 4 second delay between requests.
More information: What's New in JMeter 5.3
If you need to understand what your threads are doing during this 4 seconds delay time frame - take a thread dump, it can be done even via JMeter GUI
I am new to jmeter.
I am doing load testing on web application using recording feature in jmeter.
The issue is, If I'm giving say 100 with 100s ramp up time in Thread pool for 50 continuous web requests(sequence of web application flow).
If the server is not responding at 25th request(total 50) of 45th Thread(total 100) it is stuck at that point and not sending requests for remaining 55 threads.
What should I do.? is there any other method to initiate the threads.
it is not sending the threads because of many reasons
1. jmeter memory print you need to check
2. the server you are targeting will accept only no of threads.
etc are there.
if each thread processing time will take x amount of time hence n threads with x amount of time the processor is busy .
if your targeting server can only process 40 in this case i am assuming capacity as 40 , then the 41st request will only get chance , only at least one of the previous request get processed or released the thread .
too many threads might cause STUCK or BLOCKED threads at the server end in that case we either dont see response or error code . try stopping the threads you see all the reaming as failed requests
JMeter shouldn't normally act like you described. Check out jmeter.log file, it usually should have enough information to get to the bottom of problem.
It looks like you're trying to run the load test using JMeter GUI. If it's the case - please don't, JMeter is not designed for producing high load in GUI mode.
Run your test in command-line mode
Delete or disable Listeners if any
Increase JVM Heap size, JMeter comes with very little value by default.
Follow other recommendations from 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure article
I am using JMeter 2.11 for simulate 10000 thread users. I use CSV data set config to simulate 10000 user load and take 2-3 HTTP request in my test plan. All 10000 user load applied successfully by Jmeter but main problem is when my last request goes idle (as I put my Jmeter http request on home page of my website) all sessions goes timed out after some time.
I also configure "app pool's Idle time out=0" and my application's web config's "session state timeout is 20" (I also increase this time from 20 min but no way). Also Keep Alive is checked on all http request.
Please suggest me what to do for keep my last request's session alive.
JMeter threads are never idle, if thread doesn't have any more samplers to execute or no more loops to iterate it's being shut down. 10 000 users is quite a high load, it might be a problem with your JMeter configuration, i.e. it is not capable of generating and sustaining 10 000 threads. In 99% of cases jmeter.log file has enough troubleshooting information.
In the meantime few recommendations:
Upgrade to the latest version of JMeter (for the moment it's Apache JMeter 2.13)
Make sure you use 64-bit server JRE or JDK
Provide JMeter enough Java Heap space, by default it comes with 512Mb only which is not enough to simulate 10k users
Run JMeter test in non-GUI mode
Disable all Listeners during test run
See 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure for above points explained and few more tips and tricks.