跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 可调参数参考手册 Oracle Solaris 11 Information Library (简体中文) |
_icmp_err_interval and _icmp_err_burst
_respond_to_echo_broadcast 和 _respond_to_echo_multicast(ipv4 或 ipv6)
为非直接相连的主机指定 TCP 延迟确认 (ACK) 计时器的超时值。
请参阅 RFC 1122,4.2.3.2。
100 毫秒
1 毫秒 - 1 分钟
是
请勿将该值增大到超过 500 毫秒。
在下列情况下需增大该值:
存在大于 512 字节最大段大小 (maximum segment size, MSS) 的慢速网络链路(小于 57.6 Kbps)
接收多个 TCP 段的时间间隔很短时
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
为直接相连的主机指定 TCP 延迟确认 (ACK) 计时器的超时值。
请参阅 RFC 1122,4.2.3.2。
50 毫秒
10 毫秒 - 500 毫秒
是
请勿将该值增大到超过 500 毫秒。
在下列情况下需增大该值:
存在大于 512 字节最大段大小 (maximum segment size, MSS) 的慢速网络链路(小于 57.6 Kbps)
接收多个 TCP 段的时间间隔很短时
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
指定在生成确认 (ACK) 前从远程目标(非直接相连的)接收的 TCP 段的最大数目。TCP 段数是以各个连接的最大段大小 (maximum segment size, MSS) 为单位测量的。如果设置为 0 或 1,则表示 ACK 没有延迟(假设所有段的长度均为 1 MSS)。实际数值是针对每个连接动态计算的。该值是缺省的最大值。
2
0 - 16
是
不要更改该值。在某些情况下,由于 ACK 延迟的影响造成网络通信流量突发时,请减小该值。请勿使该值小于 2。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
指定在生成确认 (ACK) 前从直接相连的目标接收的 TCP 段的最大数目。TCP 段数是以各个连接的最大段大小 (maximum segment size, MSS) 为单位测量的。如果设置为 0 或 1,则意味着没有 ACK 延迟(假设所有段的长度均为 1 MSS)。实际数值是针对每个连接动态计算的。该值是缺省的最大值。
8
0 - 16
是
不要更改该值。在某些情况下,由于 ACK 延迟的影响造成网络通信流量突发时,请减小该值。请勿使该值小于 2。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
当启用了该参数时(缺省设置),TCP 始终发送带有窗口缩放选项的 SYN 段,即使窗口缩放选项值为 0。请注意,如果 TCP 接收到带有窗口缩放选项的 SYN 段,即使已禁用该参数,TCP 也会以带有窗口缩放选项的 SYN 段进行响应。此外,将根据接收窗口大小设置选项值。
有关窗口缩放选项,请参阅 RFC 1323。
1(启用)
0(禁用)或 1(启用)
是
如果由于不支持窗口缩放选项的旧 TCP 堆栈导致互操作性问题,请禁用该参数。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
如果设置为 1,则 TCP 始终发送带有时间戳选项的 SYN 段。请注意,如果 TCP 接收到带有时间戳选项的 SYN 段,则 TCP 将以带有时间戳选项的 SYN 段进行响应,即使该参数设置为 0。
0(禁用)
0(禁用)或 1(启用)
是
如果无法准确测量往返时间 (RTT) 和 TCP 序列号回绕,请启用该参数。
有关启用该选项的更多原因,请参阅 RFC 1323。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
49,152
4096 - max_buf的当前值
是
应用程序可使用 setsockopt(3XNET) SO_SNDBUF 来更改各个连接的发送缓冲区。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
定义缺省接收窗口大小(以字节为单位)。有关基于各个路由设置其他值的描述,请参阅每路由度量。另请参见max_buf和_recv_hiwat_minmss。
128,000
2048 - max_buf的当前值
是
应用程序可使用 setsockopt(3XNET) SO_RCVBUF 来更改各个连接的接收缓冲区。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
定义发送和接收缓冲区的最大大小(以字节为单位)。该参数控制使用 setsockopt(3XNET) 的应用程序可以设置的发送缓冲区和接收缓冲区最大值。
1,048,576
128,000 - 1,073,741,824
是
如果在高速网络环境中进行 TCP 连接,请将该值增大到与网络链路速度相匹配。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
定义 TCP 拥塞窗口 (cwnd) 的最大值(以字节为单位)。
有关 TCP 拥塞窗口的更多信息,请参阅 RFC 1122 和 RFC 2581。
1,048,576
128 - 1,073,741,824
是
即使应用程序使用 setsockopt(3XNET) 将窗口大小更改为大于 _cwnd_max 的值,实际使用的窗口也不会超过 _cwnd_max。因此,_max_buf 应大于 _cwnd_max。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
定义值为 TCP 连接最大段大小 (MSS) 的最大初始拥塞窗口 (cwnd) 大小。
有关计算初始拥塞窗口大小的方法,请参阅 RFC 2414。
4
1 - 4
是
不要更改该值。
如果在特殊情况下,初始 cwnd 大小导致网络拥塞,请减小该值。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
在 TCP 连接空闲(未接收到段)超过一个重新传输超时 (RTO) 时段后,该连接的拥塞窗口大小(以最大段大小 (MSS) 为单位)。
有关计算初始拥塞窗口大小的方法,请参阅 RFC 2414。
4
1 - 16,384
是
有关更多信息,请参见_slow_start_initial。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
如果设置为 2,TCP 将始终发送带有选择性确认 (SACK) 允许选项的 SYN 段。如果 TCP 接收到带有 SACK 允许选项的 SYN,并且该参数设置为 1,则 TCP 将以 SACK 允许选项进行响应。如果该参数设置为 0,TCP 将不发送 SACK 允许选项,无论传入段是否包含 SACK 允许选项。
有关 SACK 选项的信息,请参阅 RFC 2018。
2(主动启用)
0(禁用)、1(被动启用)或 2(主动启用)
是
SACK 处理可改进 TCP 重新传输性能,因此应主动启用。有时侯,另一端可能会对主动启用的 SACK 选项有困惑。如果出现这种困惑,请将该值设置为 1,以便仅在传入连接允许 SACK 处理时才启用 SACK 处理。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
如果设置为 0,由于安全原因,TCP 不会反转传入连接的 IP 源路由选项。如果设置为 1,TCP 将执行常规反向源路由。
0(禁用)
0(禁用)或 1(启用)
是
如果出于诊断目的需使用 IP 源路由,请启用 IP 源路由。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
指定 TCP 连接处于 TIME-WAIT 状态的时间(以毫秒为单位)。
有关更多信息,请参阅 RFC 1122,4.2.2.13 节。
60,000(60 秒)
1 秒 - 10 分钟
是
请勿将该值设置为低于 60 秒。
有关更改该参数的信息,请参阅 RFC 1122,4.2.2.13 节。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
控制显式拥塞通知 (Explicit Congestion Notification, ECN) 支持。
如果该参数设置为 0,TCP 将不会与支持 ECN 机制的对等点协商。
如果在初始化连接时该参数设置为 1,TCP 将不会告知对等点它支持 ECN 机制。
但是,如果对等点在 SYN 段中指出它支持 ECN 机制,则在接受新的传入连接请求时,TCP 将告知对等点它支持 ECN 机制。
如果该参数设置为 2,除了在接受连接时以 ECN 机制与对等点协商之外,TCP 还会在传出 SYN 段中指出它在进行主动传出连接时支持 ECN 机制。
1(被动启用)
0(禁用)、1(被动启用)或 2(主动启用)
是
ECN 可帮助 TCP 更好地处理拥塞控制。但是,现有的 TCP 实现、防火墙、NAT 和其他网络设备可能会不理解该机制。这些设备不符合 IETF 标准。
由于这些设备的原因,该参数的缺省值设置为 1。在极少数情况下,被动启用仍然会导致出现问题。仅在绝对必要时才将该参数设置为 0。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
为 TCP 侦听器指定等待 accept(3SOCKET) 接受的待处理 TCP 连接的最大缺省数目。另请参见_conn_req_max_q0。
128
1 - 4,294,967,295
是
对于可能会收到多个连接请求的应用程序(例如,Web 服务器),可以增大缺省值以便与传入速率相匹配。
不要将该参数增大为极大的值。待处理的 TCP 连接会消耗过多的内存。此外,如果由于待处理的 TCP 连接数过多导致应用程序无法足够快地处理大量连接请求,新的传入请求将会被拒绝。
请注意,增大 _conn_req_max_q 并不意味着应用程序可以处理大量的待处理 TCP 连接。应用程序可使用listen(3SOCKET) 更改每个套接字的待处理 TCP 连接的最大数目。该参数是应用程序可以使用 listen() 设置的最大值。因此,即使该参数设置为一个很大的值,套接字的实际最大值可能远小于 _conn_req_max_q,具体取决于 listen() 中使用的值。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
为 TCP 侦听器指定未完成的(未完成三次握手)待处理 TCP 连接的最大数目。
有关 TCP 三次握手的更多信息,请参阅 RFC 793。另请参见_conn_req_max_q。
1024
0 - 4,294,967,295
是
对于可能会收到过多连接请求的应用程序(例如,Web 服务器),可以增大缺省值以便与传入速率相匹配。
下面解释了 _conn_req_max_q0 和每个套接字待处理连接的最大数目之间的关系。
接收到连接请求时,TCP 会首先检查等待被接受的待处理 TCP 连接数(三次握手已完成)是否超出了侦听器可接受的最大值 (N)。如果连接过多,则会拒绝请求。如果连接数在允许范围内,TCP 将检查未完成的待处理 TCP 连接数是否超出了 N 和 _conn_req_max_q0 的总和。如果未超出,则会接受请求。否则,将放弃最早的未完成的待处理 TCP 请求。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
为侦听器指定等待被接受的待处理 TCP 连接请求最大数的缺省最小值。它是应用程序可以使用的 listen(3SOCKET) 最大值下限。
1
1 - 1024
是
对于使用 listen(3SOCKET) 将待处理 TCP 连接最大数目设置为很低值的应用程序,可以使用该参数。可以增大该值以匹配传入连接请求速率。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
如果该参数设置为 1,则由 ipmadm 参数 _rst_sent_rate 控制发送 RST 段的最大速率。如果该参数设置为 0,则发送 RST 段时不实施速率控制。
1(启用)
0(禁用)或 1(启用)
是
该可调参数可通过限制发送 RST 段的速率来避免在 TCP 上发生拒绝服务攻击。请仅在需要严格遵守 RFC 793 时禁用该速率控制。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
40
0 - 4,294,967,295
是
在 TCP 环境中,可能有合理的原因要生成比缺省值允许的数目更多的 RST。在这种情况下,请增大该参数的缺省值。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
该参数控制 TCP 可选择用作临时端口的最小端口号。当应用程序以指定的协议创建连接且未指定端口号时,应用程序可以使用临时端口。临时端口不会与特定的应用程序相关联。当连接关闭后,其他应用程序可以重新使用该端口号。
端口号
32,768
1,024 - 65,535
是
需要更大的临时端口范围时。
不稳定
有关信息,请参见[tcp,sctp,udp]_smallest_anon_port 和 [tcp,sctp,udp]_largest_anon_port (Oracle Solaris 11)。
该参数控制 TCP 可选择用作临时端口的最大端口号。当应用程序以指定的协议创建连接且未指定端口号时,应用程序可以使用临时端口。临时端口不会与特定的应用程序相关联。当连接关闭后,其他应用程序可以重新使用该端口号。
端口号
65,535
32,768 - 65,535
是
需要更大的临时端口范围时。
不稳定
有关信息,请参见[tcp,sctp,udp]_smallest_anon_port 和 [tcp,sctp,udp]_largest_anon_port (Oracle Solaris 11)。
以下参数只能在 /etc/system 文件中设置。修改该文件后,请重新引导系统。
例如,以下条目设置 ipcl_conn_hash_size 参数:
set ip:ipcl_conn_hash_size=value
无符号整数
0
0 - 82,500
否。只能在引导时更改该参数。
如果系统始终有成千上万个 TCP 连接,可以相应地增大该值。增大散列表大小意味着更多的内存将被固定占用,因此会减少可供用户应用程序使用的内存。
不稳定
控制在唤醒工作线程来处理已入队到 squeue 的 TCP/IP 数据包时的最大延迟。squeue 是 TCP/IP 内核代码用于处理 TCP/IP 数据包的序列化队列。
10 毫秒
0 - 50 毫秒
是
如果对响应及时性要求较高,并且网络通信流量较小,请考虑调优此参数。例如,当计算机主要为交互式网络通信流量提供服务时。
缺省值通常在网络文件服务器、Web 服务器或具有充足网络通信流量的任何服务器上效果最佳。
只能在全局区域中设置该参数。
不稳定
建议不要更改以下参数。
ipadm 参数用于设置 TCP 连接在整个系统范围内空闲后首次发出探测的时间间隔。
Solaris 支持 TCP keep-alive 机制,如 RFC 1122 所述。该机制是通过在 TCP 套接字上设置 SO_KEEPALIVE 套接字选项启用的。
如果为套接字启用了 SO_KEEPALIVE,则在 TCP 连接空闲两小时(tcp_keepalive_interval 参数的缺省值)之后发送第一个 keep-alive 探测。如果八分钟之后对等点未响应探测,则会中止 TCP 连接。有关更多信息,请参见_rexmit_interval_initial。
您还可以在各个应用程序上使用 TCP_KEEPALIVE_THRESHOLD 套接字选项覆盖缺省时间间隔,以便每个应用程序在各个套接字上使用自己的时间间隔。该选项值是一个无符号整数(以毫秒为单位)。另请参见tcp(7P)。
2 小时
10 秒 - 10 天
无符号整数(毫秒)
是
不要更改该值。减小该值可能会导致不必要的网络通信流量,并且可能会因暂时的网络问题增加连接提前终止的可能性。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
为 TCP 连接指定缺省的重新传输超时总值。对于给定的 TCP 连接,如果 TCP 重新传输时间已达 _ip_abort_interval,并且在此期间未接收到来自其他端点的任何确认,TCP 将关闭该连接。
有关 TCP 重新传输超时 (retransmission timeout, RTO) 的计算,请参阅 RFC 1122,4.2.3 节。另请参见_rexmit_interval_max。
5 分钟
500 毫秒 - 1193 小时
是
不要更改该值。有关例外情况,请参见_rexmit_interval_max。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
为 TCP 连接指定缺省的初始重新传输超时 (RTO) 值。有关基于各个路由设置其他值的描述,请参阅每路由度量。
1000 毫秒
1 毫秒 - 20000 毫秒
是
不要更改该值。减小该值会导致不必要的重新传输。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
定义缺省的最大重新传输超时 (RTO) 值。为所有 TCP 连接计算的 RTO 都不能超过该值。另请参见_ip_abort_interval。
6000 毫秒
1 毫秒 - 7200000 毫秒
是
在普通网络环境中,不要更改该值。
在某些特殊环境中,如果连接的往返时间 (RTT) 大约为 10 秒,则可以增大该值。若更改该值,还应当更改 _ip_abort_interval 参数。更改 _ip_abort_interval 的值,使其至少为 _rexmit_interval_max 值的四倍。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
指定缺省的最小重新传输超时 (RTO) 值。为所有 TCP 连接计算的·RTO 不能低于该值。另请参见_rexmit_interval_max。
200 毫秒
1 毫秒 - 7200000 毫秒
是
在普通网络环境中,不要更改该值。
TCP 的 RTO 计算应当与大多数 RTT 波动相符合。在某些极特殊的环境中,如果连接的往返时间 (RTT) 大约为 10 秒,则增大该值。若更改该值,还应当更改·_rexmit_interval_max 参数。更改 _rexmit_interval_max 的值,使其至少为 _rexmit_interval_min 值的八倍。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
0 毫秒
0 - 7200000 毫秒
是
不要更改该值。
当 RTO 计算无法为连接获取适当的值时,可更改该值以避免不必要的重新传输。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
1(启用)
0(禁用)或 1(启用)
是
不要更改该值。通常,当在高速网络中使用 TCP 时,避免序列号回绕是很必要的。因此,您需要 timestamp 选项。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。
8
1 - 65,536
是
不要更改该值。如果必须更改该值,请确保该值不小于 4。
不稳定
有关信息,请参见TCP 参数名变更 (Oracle Solaris 11)。