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
Traffic Ops API/GUI configuration of FQ Pacing plugin #1799
Conversation
Can one of the admins verify this patch? |
@@ -138,7 +138,7 @@ __PACKAGE__->table("deliveryservice"); | |||
=head2 max_dns_answers | |||
|
|||
data_type: 'bigint' | |||
default_value: 0 | |||
default_value: 5 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you mean to be changing the max dns answers here and below?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not intentionally changing it as part of this PR, but the generated schema files currently seem to be out of date for this field. After generating the new schema result, I didn't go through and clean up any of the other changes it made to this file.
Do you think this change is incorrect?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not necessarily incorrect, but didn't seem to be correct for this particular PR.
<% unless (field('ds.fq_pacing_rate')->valid) { %> | ||
<span class="field-with-error"><%= field('ds.fq_pacing_rate')->error %></span> | ||
<% } %> | ||
%= label_for 'fq_pacing_rate' => 'Max Bytes per Second allowed per session (3000k or 5M are valid entries)', class => 'label' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, if someone writes 3T
, it stores 3000000000
in the DB. And then when someone goes to edit the field a second time, it will just appear as 3000000000
, instead of being displayed as 3T
? That seems odd, but might be consistent with our other behaviour.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah I noticed that in my testing. it is a little weird but didnt seem overly burdensome on an operator.
Can one of the admins verify this patch? |
ok to test |
Refer to this link for build results (access rights to CI server needed): |
@alficles thanks for the review chris. any other changes you'd like to see before this gets merged? |
@limited Nope. I had comments above, but if you're happy with it, it should be fine. |
@limited - what types of delivery services does this relate to? You should update the Traffic Portal as well. There are 4 html forms in TP for a delivery service. One for any_map, dns*, http* and steering*. You should add this field to each form where it applies also, you'll need to add an entry for fqpacing to: |
Refer to this link for build results (access rights to CI server needed): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a few suggestions regarding TP changes
@@ -471,6 +471,18 @@ | |||
</div> | |||
</div> | |||
|
|||
<div class="form-group" ng-class="{'has-error': hasError(deliveryServiceForm.fqPacingRate), 'has-feedback': hasError(deliveryServiceForm.fqPacingRate)}"> | |||
<label class="control-label col-md-2 col-sm-2 col-xs-12"> | |||
<span uib-popover-html="label('fqPacingRate', 'desc')" popover-trigger="mouseenter" popover-popup-close-delay="2000" popover-placement="top" popover-append-to-body="true" popover-class="popover-class">{{label('fqPacingRate', 'title')}}</span> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you remove the
popover-popup-close-delay="2000"
that has been removed from the other form fields
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
@@ -468,6 +468,18 @@ | |||
</div> | |||
</div> | |||
|
|||
<div class="form-group" ng-class="{'has-error': hasError(deliveryServiceForm.fqPacingRate), 'has-feedback': hasError(deliveryServiceForm.fqPacingRate)}"> | |||
<label class="control-label col-md-2 col-sm-2 col-xs-12"> | |||
<span uib-popover-html="label('fqPacingRate', 'desc')" popover-trigger="mouseenter" popover-popup-close-delay="2000" popover-placement="top" popover-append-to-body="true" popover-class="popover-class">{{label('fqPacingRate', 'title')}}</span> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you remove the
popover-popup-close-delay="2000"
that has been removed from the other form fields
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
@@ -199,6 +199,10 @@ | |||
"title": "Global Max TPS", | |||
"desc": "The maximum transactions this delivery service can serve across all EDGE caches before traffic will be diverted to the bypass destination. For a DNS delivery service, the Bypass Ipv4 or Ipv6 will be used (depending on whether this was a A or AAAA request), and for HTTP delivery services the Bypass FQDN will be used." | |||
}, | |||
"fqPacingRate": { | |||
"title": "Fair Queuing Pacing Rate Bps", | |||
"desc": "The maximum bytes per second a cache will delivery on any single TCP connection. This uses the Linux kernel's Fair Queuing setsockopt(SO_MAX_PACING_RATE) to limit the rate of delivery. Traffic exceeding this speed will only be rate-limited and not diverted. This option requires 'net.core.default_qdisc = fq' in /etc/sysctl.conf" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You might want to remove the
"This option requires 'net.core.default_qdisc = fq' in /etc/sysctl.conf"
This description is used in a tooltip in TP and the tooltip is intended for users of the system rather than administrators of the system. That comment is a little too technical for users in my opinion.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed that sentence
Refer to this link for build results (access rights to CI server needed): |
test this please |
Refer to this link for build results (access rights to CI server needed): |
@limited - looks good to me from a TP perspective |
Refer to this link for build results (access rights to CI server needed): |
Refer to this link for build results (access rights to CI server needed): |
Looks like the test case failed for
|
Ok, looks good all tests pass |
This activates a Traffic Server Pacing Plugin (apache/trafficserver#3049). Pacing shortens queuing delays in the network and can reduce congestive losses.
This is an optional plugin, with a maximum rate per-Deliveryservice.
Also related is #1942