|
|
049c96 |
From 00e18dfdb109027f8f0380a38939892ae9940242 Mon Sep 17 00:00:00 2001
|
|
|
049c96 |
From: Phil Sutter <psutter@redhat.com>
|
|
|
049c96 |
Date: Thu, 18 Feb 2016 15:29:02 +0100
|
|
|
049c96 |
Subject: [PATCH] man: tc: add man page for fq pacer
|
|
|
049c96 |
|
|
|
049c96 |
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1261520
|
|
|
049c96 |
Upstream Status: iproute2.git commit 484b3f922cfd5
|
|
|
049c96 |
Conflicts: Changed context due to other missing man pages in RHEL7.
|
|
|
049c96 |
|
|
|
049c96 |
commit 484b3f922cfd5a38a73de5981e471f99ecfe3e8b
|
|
|
049c96 |
Author: Florian Westphal <fw@strlen.de>
|
|
|
049c96 |
Date: Thu Sep 24 02:10:28 2015 +0200
|
|
|
049c96 |
|
|
|
049c96 |
man: tc: add man page for fq pacer
|
|
|
049c96 |
|
|
|
049c96 |
Partially based on kernel Kconfig help text, code comments and
|
|
|
049c96 |
git commit messages from Eric Dumazet.
|
|
|
049c96 |
|
|
|
049c96 |
Joint work with Phil Sutter.
|
|
|
049c96 |
|
|
|
049c96 |
Signed-off-by: Phil Sutter <phil@nwl.cc>
|
|
|
049c96 |
Signed-off-by: Florian Westphal <fw@strlen.de>
|
|
|
049c96 |
---
|
|
|
049c96 |
man/man8/Makefile | 1 +
|
|
|
049c96 |
man/man8/tc-fq.8 | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
049c96 |
man/man8/tc.8 | 1 +
|
|
|
049c96 |
3 files changed, 94 insertions(+)
|
|
|
049c96 |
create mode 100644 man/man8/tc-fq.8
|
|
|
049c96 |
|
|
|
049c96 |
diff --git a/man/man8/Makefile b/man/man8/Makefile
|
|
|
049c96 |
index ff80c98..23ac83e 100644
|
|
|
049c96 |
--- a/man/man8/Makefile
|
|
|
049c96 |
+++ b/man/man8/Makefile
|
|
|
049c96 |
@@ -2,6 +2,7 @@ TARGETS = ip-address.8 ip-link.8 ip-route.8
|
|
|
049c96 |
|
|
|
049c96 |
MAN8PAGES = $(TARGETS) ip.8 arpd.8 lnstat.8 routel.8 rtacct.8 rtmon.8 ss.8 \
|
|
|
049c96 |
tc.8 tc-bfifo.8 tc-cbq.8 tc-cbq-details.8 tc-choke.8 tc-codel.8 \
|
|
|
049c96 |
+ tc-fq.8 \
|
|
|
049c96 |
tc-drr.8 tc-ematch.8 tc-fq_codel.8 tc-hfsc.8 tc-htb.8 \
|
|
|
049c96 |
tc-netem.8 tc-pfifo.8 tc-pfifo_fast.8 tc-prio.8 tc-red.8 \
|
|
|
049c96 |
tc-sfb.8 tc-sfq.8 tc-stab.8 tc-tbf.8 \
|
|
|
049c96 |
diff --git a/man/man8/tc-fq.8 b/man/man8/tc-fq.8
|
|
|
049c96 |
new file mode 100644
|
|
|
049c96 |
index 0000000..993beb6
|
|
|
049c96 |
--- /dev/null
|
|
|
049c96 |
+++ b/man/man8/tc-fq.8
|
|
|
049c96 |
@@ -0,0 +1,92 @@
|
|
|
049c96 |
+.TH FQ 8 "10 Sept 2015" "iproute2" "Linux"
|
|
|
049c96 |
+.SH NAME
|
|
|
049c96 |
+Fair Queuing (FQ) \- Traffic Pacing
|
|
|
049c96 |
+.SH SYNOPSIS
|
|
|
049c96 |
+.B tc qdisc ... fq
|
|
|
049c96 |
+[
|
|
|
049c96 |
+.B limit
|
|
|
049c96 |
+PACKETS ] [
|
|
|
049c96 |
+.B flow_limit
|
|
|
049c96 |
+PACKETS ] [
|
|
|
049c96 |
+.B quantum
|
|
|
049c96 |
+BYTES ] [
|
|
|
049c96 |
+.B initial_quantum
|
|
|
049c96 |
+BYTES ] [
|
|
|
049c96 |
+.B maxrate
|
|
|
049c96 |
+RATE ] [
|
|
|
049c96 |
+.B buckets
|
|
|
049c96 |
+NUMBER ] [
|
|
|
049c96 |
+.B pacing
|
|
|
049c96 |
+|
|
|
|
049c96 |
+.B nopacing
|
|
|
049c96 |
+]
|
|
|
049c96 |
+
|
|
|
049c96 |
+.SH DESCRIPTION
|
|
|
049c96 |
+FQ (Fair Queue) is a classless packet scheduler meant to be mostly
|
|
|
049c96 |
+used for locally generated traffic. It is designed to achieve per flow pacing.
|
|
|
049c96 |
+FQ does flow separation, and is able to respect pacing requirements set by TCP stack.
|
|
|
049c96 |
+All packets belonging to a socket are considered as a 'flow'.
|
|
|
049c96 |
+For non local packets (router workload), packet rxhash is used as fallback.
|
|
|
049c96 |
+
|
|
|
049c96 |
+An application can specify a maximum pacing rate using the
|
|
|
049c96 |
+.B SO_MAX_PACING_RATE
|
|
|
049c96 |
+setsockopt call. This packet scheduler adds delay between packets to
|
|
|
049c96 |
+respect rate limitation set by TCP stack.
|
|
|
049c96 |
+
|
|
|
049c96 |
+Dequeueing happens in a round-robin fashion.
|
|
|
049c96 |
+A special FIFO queue is reserved for high priority packets (
|
|
|
049c96 |
+.B TC_PRIO_CONTROL
|
|
|
049c96 |
+priority), such packets are always dequeued first.
|
|
|
049c96 |
+
|
|
|
049c96 |
+FQ is non-work-conserving.
|
|
|
049c96 |
+
|
|
|
049c96 |
+TCP pacing is good for flows having idle times, as the congestion
|
|
|
049c96 |
+window permits TCP stack to queue a possibly large number of packets.
|
|
|
049c96 |
+This removes the 'slow start after idle' choice, badly hitting
|
|
|
049c96 |
+large BDP flows and applications delivering chunks of data such as video streams.
|
|
|
049c96 |
+
|
|
|
049c96 |
+.SH PARAMETERS
|
|
|
049c96 |
+.SS limit
|
|
|
049c96 |
+Hard limit on the real queue size. When this limit is reached, new packets
|
|
|
049c96 |
+are dropped. If the value is lowered, packets are dropped so that the new limit is
|
|
|
049c96 |
+met. Default is 10000 packets.
|
|
|
049c96 |
+.SS flow_limit
|
|
|
049c96 |
+Hard limit on the maximum number of packets queued per flow.
|
|
|
049c96 |
+Default value is 100.
|
|
|
049c96 |
+.SS quantum
|
|
|
049c96 |
+The credit per dequeue RR round, i.e. the amount of bytes a flow is allowed to
|
|
|
049c96 |
+dequeue at once. A larger value means a longer time period before the next flow
|
|
|
049c96 |
+will be served.
|
|
|
049c96 |
+Default is 2 * interface MTU bytes.
|
|
|
049c96 |
+.SS initial_quantum
|
|
|
049c96 |
+The initial sending rate credit, i.e. the amount of bytes a new flow is allowed
|
|
|
049c96 |
+to dequeue initially.
|
|
|
049c96 |
+This is specifically meant to allow using IW10 without added delay.
|
|
|
049c96 |
+Default is 10 * interface MTU, i.e. 15140 for 'standard' ethernet.
|
|
|
049c96 |
+.SS maxrate
|
|
|
049c96 |
+Maximum sending rate of a flow. Default is unlimited.
|
|
|
049c96 |
+Application specific setting via
|
|
|
049c96 |
+.B SO_MAX_PACING_RATE
|
|
|
049c96 |
+is ignored only if it is larger than this value.
|
|
|
049c96 |
+.SS buckets
|
|
|
049c96 |
+The size of the hash table used for flow lookups. Each bucket is assigned a
|
|
|
049c96 |
+red-black tree for efficient collision sorting.
|
|
|
049c96 |
+Default: 1024.
|
|
|
049c96 |
+.SS [no]pacing
|
|
|
049c96 |
+Enable or disable flow pacing. Default is enabled.
|
|
|
049c96 |
+.SH EXAMPLES
|
|
|
049c96 |
+#tc qdisc add dev eth0 root fq
|
|
|
049c96 |
+.br
|
|
|
049c96 |
+#tc -s -d qdisc
|
|
|
049c96 |
+.br
|
|
|
049c96 |
+qdisc fq 8003: dev eth0 root refcnt 2 limit 10000p flow_limit 100p buckets 1024 quantum 3028 initial_quantum 15140
|
|
|
049c96 |
+ Sent 503727981 bytes 1146972 pkt (dropped 0, overlimits 0 requeues 54452)
|
|
|
049c96 |
+ backlog 0b 0p requeues 54452
|
|
|
049c96 |
+ 1289 flows (1289 inactive, 0 throttled)
|
|
|
049c96 |
+ 0 gc, 31 highprio, 27411 throttled
|
|
|
049c96 |
+.br
|
|
|
049c96 |
+.SH SEE ALSO
|
|
|
049c96 |
+.BR tc (8),
|
|
|
049c96 |
+.BR socket (7)
|
|
|
049c96 |
+.SH AUTHORS
|
|
|
049c96 |
+FQ was written by Eric Dumazet.
|
|
|
049c96 |
diff --git a/man/man8/tc.8 b/man/man8/tc.8
|
|
|
049c96 |
index dfb6e20..80eaa3b 100644
|
|
|
049c96 |
--- a/man/man8/tc.8
|
|
|
049c96 |
+++ b/man/man8/tc.8
|
|
|
049c96 |
@@ -589,6 +589,7 @@ was written by Alexey N. Kuznetsov and added in Linux 2.2.
|
|
|
049c96 |
.BR tc-codel (8),
|
|
|
049c96 |
.BR tc-drr (8),
|
|
|
049c96 |
.BR tc-ematch (8),
|
|
|
049c96 |
+.BR tc-fq (8),
|
|
|
049c96 |
.BR tc-fq_codel (8),
|
|
|
049c96 |
.BR tc-hfsc (7),
|
|
|
049c96 |
.BR tc-hfsc (8),
|
|
|
049c96 |
--
|
|
|
049c96 |
1.8.3.1
|
|
|
049c96 |
|