Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RRUL Upload plot - why such low granularity? #185

Open
richb-hanover opened this issue Sep 19, 2019 · 11 comments
Open

RRUL Upload plot - why such low granularity? #185

richb-hanover opened this issue Sep 19, 2019 · 11 comments

Comments

@richb-hanover
Copy link
Contributor

Here's an RRUL plot from my 7mbps/768kbps DSL circuit. The download has good granularity, while the upload plot seems only to have a half-dozen data points. This makes it seem faulty, or somehow different/disconnected from the other two plots.

I think I once saw a justification for the appearance of the upload plot, but I didn't understand it when I read it, and can't find it again to review. If this behavior is expected, let's document the reason.

The log and flent.gz files are at Rich_Test_gz_&_logs.zip Thanks.

image

@tohojo
Copy link
Owner

tohojo commented Sep 19, 2019 via email

@richb-hanover
Copy link
Contributor Author

answering the questions in the opposite order....

Any suggestions as for where to put this so it's easy to find?

The bufferbloat.net site has an RRUL Chart Explanation page. I have always felt the Flent site could have something like that as well, and this might be a good place to incorporate this information.

@richb-hanover
Copy link
Contributor Author

Basically, the problem is the way netperf determines its data output intervals in demo mode:

Ahah! That was the explanation, but I wasn't (yet) smart enough to comprehend it. [To further test out my understanding... If netperf were to use a smaller "data output interval" when it's transmitting, it would create more frequent updates and the granularity would be higher...]

But I'm not sure that fully explains it unless netperf uses a (very) different data output interval for receiving... The download chart has hundreds of points, while the ratio between my download and upload is about 10:1 (7mbps vs 768kbps) so I'd expect the upload chart to have something like dozens of points...

Wait... maybe the chart really does have more points: each of the four plots above might have many inflection points but since fq_codel controls their rates so carefully, there's little change to their values, thus no obvious change to the charted values... And yes - turning off SQM (see image below) shows many more data points for those upload plots.

But are there enough points? In the download chart, I count around 30 samples for one plot in a 10-second period. So that's 3 per second. With an average data rate of 1.6mbps, it looks like 500 kbits/sample (a nice round number, arrived at with a SWAG - scientific wild ass guess.)

If the upload has the same data output interval, those upload streams (averaging 0.11 mbps) would need about 4.5 seconds to transmit that 500kbits. And if you squint at the plot below, and take into account the enormous SWAG in the previous paragraph, it looks OK.

All's right with the world. (But only after I remember to turn SQM back on...) Thanks.

image

@flent-users
Copy link

flent-users commented Sep 19, 2019 via email

@tohojo
Copy link
Owner

tohojo commented Sep 19, 2019 via email

@richb-hanover
Copy link
Contributor Author

Sorry for the delay in responding... The higher granularity makes much better plots (see below). Using -m 2048,2048 I don't see a whole lot of load on my Mac 2.5 GHz Intel Core i7 at 7mbps/768kbps. Thanks.

image

@tohojo
Copy link
Owner

tohojo commented Sep 29, 2019 via email

@flent-users
Copy link

flent-users commented Sep 29, 2019 via email

@tohojo
Copy link
Owner

tohojo commented Sep 29, 2019 via email

@flent-users
Copy link

flent-users commented Sep 29, 2019 via email

@richb-hanover
Copy link
Contributor Author

Well, by "switch" I just meant "new command line option". The obvious
form of that would be, as you say, just the ability to set the netperf
xfer size directly...

Yes. And let's remember why we're having this discussion - I asked why the charts for very slow links had so little granularity. RRUL has been this way since 2012, so it is not a "hotly-demanded" feature: we don't need to spend a whole lot of time on it.

Given that it's possible (when warranted) to tell netperf to increase its granularity, a Flent command line option would allow the person to request it if needed. My thoughts:

  • The default for Flent should remain the same: defaults work fine for most people. The defaults also create datasets that are consistent with earlier test runs.
  • The option should be named to suggest its purpose. I initially thought about "slow links" (because that kicked off this issue) but something along the lines of "increased granularity for slow links" might be better.
  • The option should allow the person to specify the numbers directly (e.g. -m 2048,2048) to simplify implementation.
  • The documentation should describe that this is the amount of data in bytes to be transferred between data samples; that using a smaller number increases granularity at the expense of higher CPU demand and increased data file size; provide guidance that the default is -m ???,??? (whatever is correct); and that -m 2048,2048 works fine for links under 1mbps.
  • I suspect that the presence of two numbers indicates that one is for transmit, the other for receive. If so, the docs should specify which is which, and note that using the same value for both is reasonable.
  • [NB] I was initially confused about the -m option - it doesn't seem to be described in the netperf documentation. Perhaps we could include a side note stating its purpose.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants