summaryrefslogtreecommitdiffstats
path: root/share/man/man7/tuning.7
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2002-08-29 20:34:06 +0000
committerdillon <dillon@FreeBSD.org>2002-08-29 20:34:06 +0000
commitc72f9f522eb030e55f95a5a07bfb06c8c594d513 (patch)
treecae4b597c69224db74c117287c682fd0474c4027 /share/man/man7/tuning.7
parenta9901abd65684d503ef81966ede6f2b7bb982af3 (diff)
downloadFreeBSD-src-c72f9f522eb030e55f95a5a07bfb06c8c594d513.zip
FreeBSD-src-c72f9f522eb030e55f95a5a07bfb06c8c594d513.tar.gz
Cleanup grammer related to PR 40907 and add a section on TCP delayed
acks as suggested by Mike Harding <mvh@ix.netcom.com>
Diffstat (limited to 'share/man/man7/tuning.7')
-rw-r--r--share/man/man7/tuning.754
1 files changed, 39 insertions, 15 deletions
diff --git a/share/man/man7/tuning.7 b/share/man/man7/tuning.7
index c04eac0..8306f76 100644
--- a/share/man/man7/tuning.7
+++ b/share/man/man7/tuning.7
@@ -222,7 +222,7 @@ options for this would be
.Dq Li "newfs -f 1024 -b 8192 ..." .
.Pp
If a large partition is intended to be used to hold fewer, larger files, such
-as a database files, you can increase the
+as database files, you can increase the
.Em bytes/i-node
ratio which reduces the number of i-nodes (maximum number of files and
directories that can be created) for that partition.
@@ -273,7 +273,7 @@ are two limitations to softupdates that you should be aware of when
determining whether to use it on a filesystem.
First, softupdates guarantees filesystem consistency in the
case of a crash but could very easily be several seconds (even a minute!)
-behind updating the physical disk.
+behind on pending write to the physical disk.
If you crash you may lose more work
than otherwise.
Secondly, softupdates delays the freeing of filesystem
@@ -291,7 +291,7 @@ A number of run-time
options exist that can help you tune the system.
The most obvious and most dangerous one is
.Cm async .
-Do not ever use it, it is far too dangerous.
+Do not ever use it; it is far too dangerous.
A less dangerous and more
useful
.Xr mount 8
@@ -455,7 +455,7 @@ and
.Va net.inet.tcp.recvspace
sysctls are of particular interest if you are running network intensive
applications.
-This controls the amount of send and receive buffer space
+They control the amount of send and receive buffer space
allowed for any given TCP connection.
The default sending buffer is 32K; the default receiving buffer
is 64K.
@@ -499,7 +499,7 @@ scaling extension of the TCP protocol, which is controlled by the
.Va net.inet.tcp.rfc1323
sysctl.
These extensions should be enabled and the TCP buffer size should be set
-to a value larger than 65536 in order to obtain good performance out of
+to a value larger than 65536 in order to obtain good performance from
certain types of network links; specifically, gigabit WAN links and
high-latency satellite links.
RFC1323 support is enabled by default.
@@ -524,6 +524,29 @@ In such environments, setting the sysctl to 0 may reduce the occurrence of
TCP session disconnections.
.Pp
The
+.Va net.inet.tcp.delayed_ack
+TCP feature is largly misunderstood. Historically speaking this feature
+was designed to allow the acknowledgement to transmitted data to be returned
+along with the response. For example, when you type over a remote shell
+the acknowledgement to the character you send can be returned along with the
+data representing the echo of the character. With delayed acks turned off
+the acknowledgement may be sent in its own packet before the remote service
+has a chance to echo the data it just received. This same concept also
+applies to any interactive protocol (e.g. SMTP, WWW, POP3) and can cut the
+number of tiny packets flowing across the network in half. The FreeBSD
+delayed-ack implementation also follows the TCP protocol rule that
+at least every other packet be acknowledged even if the standard 100ms
+timeout has not yet passed. Normally the worst a delayed ack can do is
+slightly delay the teardown of a connection, or slightly delay the ramp-up
+of a slow-start TCP connection. While we aren't sure we believe that
+the several FAQs related to packages such as SAMBA and SQUID which advise
+turning off delayed acks may be refering to the slow-start issue. In FreeBSD
+it would be more beneficial to increase the slow-start flightsize via
+the
+.Va net.inet.tcp.slowstart_flightsize
+sysctl rather then disable delayed acks.
+.Pp
+The
.Va net.inet.tcp.inflight_enable
sysctl turns on bandwidth delay product limiting for all TCP connections.
The system will attempt to calculate the bandwidth delay product for each
@@ -664,7 +687,7 @@ buffers.
You can do a simple calculation to figure out how many you need.
If you have a web server which maxes out at 1000 simultaneous connections,
and each connection eats a 16K receive and 16K send buffer, you need
-approximate 32MB worth of network buffers to deal with it.
+approximately 32MB worth of network buffers to deal with it.
A good rule of
thumb is to multiply by 2, so 32MBx2 = 64MB/2K = 32768.
So for this case
@@ -706,7 +729,7 @@ so you should not need to modify this parameter except under extreme
circumstances.
.Sh KERNEL CONFIG TUNING
There are a number of kernel options that you may have to fiddle with in
-a large scale system.
+a large-scale system.
In order to change these options you need to be
able to compile a new kernel from source.
The
@@ -748,11 +771,11 @@ Some clones may be recognized as a Pentium or even a 486 and not be able
to boot without those options.
If it works, great!
The operating system
-will be able to better-use higher-end CPU features for MMU, task switching,
+will be able to better use higher-end CPU features for MMU, task switching,
timebase, and even device operations.
Additionally, higher-end CPUs support
-4MB MMU pages which the kernel uses to map the kernel itself into memory,
-which increases its efficiency under heavy syscall loads.
+4MB MMU pages, which the kernel uses to map the kernel itself into memory,
+increasing its efficiency under heavy syscall loads.
.Sh IDE WRITE CACHING
.Fx 4.3
flirted with turning off IDE write caching.
@@ -763,8 +786,8 @@ Basically the problem is that
IDE drives lie about when a write completes.
With IDE write caching turned
on, IDE hard drives will not only write data to disk out of order, they
-will sometimes delay some of the blocks indefinitely when under heavy disk
-loads.
+will sometimes delay some of the blocks indefinitely under heavy disk
+load.
A crash or power failure can result in serious filesystem
corruption.
So our default was changed to be safe.
@@ -779,8 +802,9 @@ If IDE write caching is turned off, you can turn it back
on by setting the
.Va hw.ata.wc
loader tunable to 1.
-More information on tuning the ATA driver system may be found in
-.Xr ata 4 .
+More information on tuning the ATA driver system may be found in the
+.Xr ata 4
+man page.
.Pp
There is a new experimental feature for IDE hard drives called
.Va hw.ata.tags
@@ -834,7 +858,7 @@ Use 100BaseT rather
than 10BaseT, or use 1000BaseT rather then 100BaseT, depending on your needs.
Most bottlenecks occur at the WAN link (e.g.\&
modem, T1, DSL, whatever).
-If expanding the link is not an option it may be possible to use
+If expanding the link is not an option it may be possible to use the
.Xr dummynet 4
feature to implement peak shaving or other forms of traffic shaping to
prevent the overloaded service (such as web services) from affecting other
OpenPOWER on IntegriCloud