Giter Site home page Giter Site logo

Changing CC algos on the fly about flent HOT 15 CLOSED

tohojo avatar tohojo commented on September 23, 2024
Changing CC algos on the fly

from flent.

Comments (15)

tohojo avatar tohojo commented on September 23, 2024

Definitely possible to use test-parameter to set the CC, but it would be
a special-casing.

See also #34 - would this be a way to achieve the comparability?

from flent.

dtaht avatar dtaht commented on September 23, 2024

hahahaha. great minds think alike. You beat me to thinking about it by 4 hours....

Yes. Although I have generally liked rrul and rrul_be to be non-comparable, also, when I look at a large dataset I tend to look at comparisons within those two.

I guess it also comes down to better being able to select the metadata on which multiple plots can be compared.

from flent.

dtaht avatar dtaht commented on September 23, 2024

I might argue that CC is special enough to be it's own reserved word or parameter, and default means of handing stuff onto netperf. I would of course like to see httping variants gain support also....

from flent.

tohojo avatar tohojo commented on September 23, 2024

Dave Täht [email protected] writes:

I guess it also comes down to better being able to select the metadata
on which multiple plots can be compared.

Yes, some kind of definition of what 'compatible' means is definitely
needed. Maybe explicit categorisation in test definitions? "This is a
'download' type flow"?

from flent.

tohojo avatar tohojo commented on September 23, 2024

Dave Täht [email protected] writes:

I might argue that CC is special enough to be it's own reserved word or
parameter, and default means of handing stuff onto netperf. I would of course
like to see httping variants gain support also....

Well I don't mind special-casing it if necessary, but if we can achieve
more with less code I'm happier ;)

from flent.

dtaht avatar dtaht commented on September 23, 2024

well, the simplest possible thing, adding this to netperf_definitions.inc

CC=TEST_PARAMETERS.get('CC','cubic')

and this to tcp_1up

DESCRIPTION="Single " + CC + " TCP upload stream w/ping"

didn't take the override on the command line, yielding cubic everytime.

I think your intent was that in the gui that TEST_PARAMETERS pull from the metadata on output...

and from the command line on the test itself.

from flent.

dtaht avatar dtaht commented on September 23, 2024

And I always worry when I see no comma here for some reason between cubic,cubic. Have always kind of figured that was messing up the other CS1,CS1 stuff. But I suppose it is just an artifact of ps....

/usr/local/bin/netperf -P 0 -v 0 -D -0.20 -4 -H netperf-west.bufferbloat.net -t TCP_STREAM -l 60 -f m -- -K cubic cubic

from flent.

dtaht avatar dtaht commented on September 23, 2024

Assuming I got the first part right and wasn't so dumb about how to extract the TEST_PARAMETERS, this does stick it on the command line. S

find_netperf("TCP_STREAM", LENGTH, HOST, extra_args="-- -K " + CC + "," + CC)

from flent.

tohojo avatar tohojo commented on September 23, 2024

Dave Täht [email protected] writes:

Assuming I got the first part right and wasn't so dumb about how to extract the
TEST_PARAMETERS, this does stick it on the command line. S

find_netperf("TCP_STREAM", LENGTH, HOST, extra_args="-- -K " + CC + "," + CC)

Well, it would probably be better to teach find_netperf a CC parameter...

from flent.

dtaht avatar dtaht commented on September 23, 2024

I am still stuck at:

CC=TEST_PARAMETERS.get('CC','cubic')

My assumption was that the first arg would pull from the environment, the second be the default if not there.

from flent.

tohojo avatar tohojo commented on September 23, 2024

That assumption is correct. However, the keys are case folded to lowercase when taken from the command line, so you'll want

CC=TEST_PARAMETERS.get('cc','cubic')

from flent.

dtaht avatar dtaht commented on September 23, 2024

OK, that drives the test right. And does the right thing on single plots of each.

but it was my hope that TEST_PARAMETERS was locally scoped, so by combining reno vs cubic plots like this (modifying tcp_1up right now), I would get labels that made sense. Instead it pulls the "CC" variable from the first file pulled from for combinatory plots.

(and arguably error checking for the actual availability of the CC algo in the local system is good, which I'll go do next. I picked the wrong week to try to learn more python)

Maybe a call to "eval"? self->something?

PLOTS = o([
('totals',
{'description': 'Bandwidth and ping plot',
'type': 'timeseries',
'dual_axes': True,
'series': [{'data': 'TCP upload',
'label': TEST_PARAMETERS.get('cc','cubic')

  • ' Upload'},

...

from flent.

dtaht avatar dtaht commented on September 23, 2024

My overall thought now is to add a new test: "tcp", with parameters to vary the cc,number of flows,and hosts, and controlling the direction on the command line as well, combined with an isochronous measurement flow and/or the existing udp+ping measurement flows.

cc=cubic,westwood,etc,etc
flows=n
hosts=x,y,z,q,etc

from flent.

tohojo avatar tohojo commented on September 23, 2024

Well, right now the test name is used for gauging whether two tests can
be plotted together (but this is a limitation in itself, see #34).

Some thought would have to be put into how to manage multiple tests that
are "the same" but in reality can vary wildly.

from flent.

tohojo avatar tohojo commented on September 23, 2024

The congestion control algorithm can be set with the tcp_cong_control test parameter.

from flent.

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.