Comments (14)
AFAIK it should be generated (no option needed) and it's a bug if this does not happen. Do you have a reproducible case?
from hyperfoil.
FWIW all the failures should be written down in all.json
and in stats/failures.csv
.
from hyperfoil.
@whitingjr Can you still reproduce the issue?
from hyperfoil.
Yes I can reproduce this issue. The code currently will poison any subsequent phase when this condition occurs.
from hyperfoil.
That code makes sure that subsequent phases are not started. It is not relevant to writing out results of phases that were already executed.
from hyperfoil.
This issue has nothing to with already executed phases.
I am suggesting for a flag to disable poisoning.
from hyperfoil.
Okay, now I understand - the issue states 'the results file is not generated' so I thought you had further issues with that part.
So you want the SLAs to behave as soft limits; only marking them. WDYT about adding a parameter type: soft|hard
so that you can define them more fine-grained, not just a global policy?
Also note that while the reason to fail a phase is not only SLA failure (setting that in https://github.com/Hyperfoil/Hyperfoil/blob/master/clustering/src/main/java/io/hyperfoil/clustering/ControllerVerticle.java#L307 ) - if you don't set SLAs explicitly the only limit is not blocking on connections. Is this what you're experiencing? Because from my experience the staircase-style benchmark hits the roof by running of out sessions as the latency * throughput exceeds maximum concurrency (number of sessions).
Solving that means setting a hard limit on concurrency (I've planned to do that as well), + not failing the phase. So what kind of termination criteria would you use in that case?
from hyperfoil.
SLAs have not been set explicitly. So as you say it's blocking on connections.
I've thought about termination. Using the duration of the phase is most intuitive. Using that to cease the phase measurement requires a reconciliation of sessions. A message on unfulfilled responses. Then discarding those unfulfilled sessions to permit the next phase to start cleanly.
from hyperfoil.
If it's blocking on connections just define the SLA explicitly with blockedRatio: 1.0
, like
- httpRequest:
sla:
- blockedRatio: 1.0
EDIT: actually blockedRatio = 1.0 is not absolutely unlimited (1.0 means that the clients can spend the same time waiting for connection as waiting for response), but you can use some high value to satisfy your needs.
from hyperfoil.
I am not concerned about phase termination, that's certainly up to duration
or maxDuration
. I am asking about stopping further phases - or do you want to run just the maxIterations
phases?
from hyperfoil.
Don't stop further phases. That's what I am asking for.
I don't have a maxIterations phase.
from hyperfoil.
OK, so you have just the ramp-up - steady-state - ramp-down style scenario, and you don't want the ramp-up to cancel steady-state.
My question was about the behaviour if you change the policy in scenarios when phases have multiple iterations, but it's quite straightforward in the end.
I am working on that right now.
from hyperfoil.
Great. Thank you.
from hyperfoil.
maxSession
limit overrun policy handled in 6d0d76c
SLA for blocking on connections can be already customized.
from hyperfoil.
Related Issues (20)
- Occasional jgroups connection issues with ssh agent
- Agent logs can take very long to download on slow controller disk HOT 2
- Hyperfoil agents that download via SSH only work with id_rsa keys with no password HOT 1
- Running Hyperfoil HotRod with remote agents sometimes gets stuck in READY state HOT 7
- Update troubleshooting doc with advice for Variable xxx is not set. HOT 1
- [minor] getting error when running `report` command (but the report works) HOT 2
- Update docs with details of JVM versions requirements
- Schema URL does not work HOT 4
- OpenModelPhase cannot go past 1000 rps HOT 6
- Make automatic reports opening configurable HOT 1
- Enable ipv6 support `in-vm` HOT 6
- Setup dependabot for automatic maven plugins updates
- Fix container image build and push workflow
- Update RELEASE documentation
- Move website documentation content in this repo
- Requests should use Session's intended start time
- Improve Session pool
- Add JMH module to benchmark Hyperfoil primitives HOT 1
- Opt-out HTTP caching
- Upgrade to JDK 21 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hyperfoil.