Penguin
Annotated edit history of SysControls version 6, including all changes. View license author blame.
Rev Author # Line
6 IanMcDonald 1 This page describes some [Linux] SysControls and what they do.
1 PerryLorier 2
6 IanMcDonald 3 SysControls can be viewed/edited via the [sysctl(8)] command, or via <tt>/proc/sys/</tt>. Therefore, <tt>sysctl foo.bar</tt> is equivalent to <tt>cat /proc/sys/foo/bar</tt>.
1 PerryLorier 4
5 AristotlePagaltzis 5 ----
1 PerryLorier 6
5 AristotlePagaltzis 7 __kernel__::
1 PerryLorier 8
5 AristotlePagaltzis 9 __kernel.panic__::
10 This is the number of seconds to wait after a kernel has panicked before the machine will reboot itself automatically. Very useful for unattended servers, or machines that are difficult to get physical access to.
2 PerryLorier 11
5 AristotlePagaltzis 12 __net__::
13 These SysControls affect networking. See also http://bec.at/support/ipsysctl-tutorial/tcpvariables.html
2 PerryLorier 14
5 AristotlePagaltzis 15 __net.ipv4__::
16 The IPv4 specific networking SysControls.
2 PerryLorier 17
5 AristotlePagaltzis 18 __net.ipv4.ip_forwarding__::
19 Enable global IP forwarding. Very important.
2 PerryLorier 20
5 AristotlePagaltzis 21 __net.ipv4.tcp_vegas_cong_avoid__ (0)::
22 [TCP] Vegas congestion avoidance is a sender side congestion control algorithm (ie only used by the machine initiating the [TCP] connection) that causes [TCP] to back off when it detects the [RTT] changing (ie, queuing is occuring).
23 It works well when there is only a few flows using the bottleneck link.
2 PerryLorier 24
5 AristotlePagaltzis 25 [TCP] Vegas is is no longer considered to be particularly useful. See [TCP] Westwood, below.
2 PerryLorier 26
5 AristotlePagaltzis 27 __net.ipv4.tcp_westwood__ (0)::
28 [TCP] Westwood+ is a sender side congestion control algorithm (like [TCP] Vegas) that keeps estimates of throughput to try and make sure that the stack uses the optimum amount of bandwidth at all times.
29 It is very useful and should probably be enabled for many sites.
2 PerryLorier 30
5 AristotlePagaltzis 31 __net.ipv4.tcp_sack__ (1)::
32 __S__elective __Ack__nowledgement reduces the number of segments that need to be retransmitted when packet loss occurs. Good to have on, needed to be enabled by both the sender and the reciever.
2 PerryLorier 33
5 AristotlePagaltzis 34 __net.ipv4.tcp_fack__::
35 Enable __F__orward __Ack__nowledgement congestion avoidance and fast retransmission. Only has an effect if __<tt>net.ipv4.tcp_sack</tt>__ is enabled. See http://www.psc.edu/networking/papers/fack_abstract.html for details on how this option works. Basically it seems to assume that missing sequence ranges are dropped (ie, implies no reordering). [Linux] will disable Forward Acknowledgement on a per connection basis if it detects reordering.
2 PerryLorier 36
5 AristotlePagaltzis 37 __net.ipv4.tcp_low_latency__ (0)::
38 "If set, the [TCP] stack makes decisions that prefer lower latency as opposed to higher throughput."
39 This seems to disable a function called __<tt>tcp_prequeue</tt>__, no idea what it does.
2 PerryLorier 40
5 AristotlePagaltzis 41 __net.ipv4.tcp_reordering__ (3)::
42 How many duplicate [ACK]s you need before you enter fast retransmit. If you are on a network with lots of reordering then this will need to be raised. [Linux] can dynamically tune this on a per [TCP] flow basis, so changing it is normally not that necessary.
1 PerryLorier 43
5 AristotlePagaltzis 44 __net.ipv4.tcp_ecn__ (0)::
45 Explicit Congestion Notification can be used by routers on the internet to signal that congestion is imminent and to therefore to slow down sending before packet loss actually occurs. However many firewalls on the internet incorrectly detect the [ECN] data as an attack and drop all packets using [ECN]. Sigh.
1 PerryLorier 46
5 AristotlePagaltzis 47 __net.ipv4.tcp_retries1__ (3)::
48 How many times to send a [SYN]/[ACK] packet before giving up on a connection.
1 PerryLorier 49
5 AristotlePagaltzis 50 __net.ipv4.tcp_retries2__ (15)::
51 How many times to send a [TCP] data packet before giving up on a connection.
52
53 __inet.ipv4.tcp_syn_retrans__ (5)::
54 How many times to send a [SYN] packet before giving up on a connection.
55
56 __inet.ipv4.tcp_retrans_collapse__ (1)::
57 Whether retransmissions should be sent as full sized packets. Presumably works around some [TCP] implementation bugs.
6 IanMcDonald 58 ----
59 See also SysctlNotes