Coder Social home page Coder Social logo

Comments (14)

rvansa avatar rvansa commented on August 28, 2024

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.

rvansa avatar rvansa commented on August 28, 2024

FWIW all the failures should be written down in all.json and in stats/failures.csv.

from hyperfoil.

rvansa avatar rvansa commented on August 28, 2024

@whitingjr Can you still reproduce the issue?

from hyperfoil.

whitingjr avatar whitingjr commented on August 28, 2024

Yes I can reproduce this issue. The code currently will poison any subsequent phase when this condition occurs.

from hyperfoil.

rvansa avatar rvansa commented on August 28, 2024

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.

whitingjr avatar whitingjr commented on August 28, 2024

This issue has nothing to with already executed phases.
I am suggesting for a flag to disable poisoning.

from hyperfoil.

rvansa avatar rvansa commented on August 28, 2024

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.

whitingjr avatar whitingjr commented on August 28, 2024

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.

rvansa avatar rvansa commented on August 28, 2024

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.

rvansa avatar rvansa commented on August 28, 2024

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.

whitingjr avatar whitingjr commented on August 28, 2024

Don't stop further phases. That's what I am asking for.
I don't have a maxIterations phase.

from hyperfoil.

rvansa avatar rvansa commented on August 28, 2024

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.

whitingjr avatar whitingjr commented on August 28, 2024

Great. Thank you.

from hyperfoil.

rvansa avatar rvansa commented on August 28, 2024

maxSession limit overrun policy handled in 6d0d76c
SLA for blocking on connections can be already customized.

from hyperfoil.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.