Solaris 可调参数参考手册

TCP/IP 可调参数

ip_forward_src_routedip6_forward_src_routed (Solaris 10)

在 Solaris 9 和 Solaris 10 发行版中,错误地记录了这些参数的缺省值。正确的缺省值已禁用。有关更多信息,请参见ip_forward_src_routedip6_forward_src_routed

ip_multidata_outbound (Solaris 10)

Solaris 10 6/06 发行版中增强了此参数,以将 IP 分段成批传送到网络驱动程序。有关更多信息,请参见ip_multidata_outbound

说明

使网络栈在传输过程中能够一次向网络设备驱动程序发送多个包。

启用此参数可以通过提高主机 CPU 使用率和/或网络吞吐量来减少每个包的处理开销。

多数据传输 (multidata transmit, MDT) 功能仅对支持此功能的设备驱动程序有效。

另请参见tcp_mdt_max_pbufs

缺省值

1(启用)

范围

0(禁用)或 1(启用)

是否为动态

何时更改

如果出于调试目的或任何其他原因不希望启用此参数,请将其禁用。

承诺级别

不稳定

更改历史记录

有关信息,请参见ip_multidata_outbound (Solaris 9 8/03)

ip_multidata_outbound (Solaris 9 8/03)

Solaris 9 8/03 发行版之后的发行版中对此参数信息进行了显著的更改。有关更多信息,请参见ip_multidata_outbound

说明

使用此参数,网络栈可以在传输过程中向网络设备驱动程序一次发送多个包。

启用此参数可以通过提高主机 CPU 使用率和/或网络吞吐量,来减少每个包的处理成本。

多数据传输 (multidata transmit, MDT) 功能仅对支持此功能的设备驱动程序有效。

要使用 MDT 参数,必须在 /etc/system 文件中启用以下参数:

set ip:ip_use_dl_cap = 0x1

缺省值

禁用

范围

0(禁用)、1(启用)

是否为动态

何时更改

可以随时启用此功能,以便在注意以下事项的同时来提高系统性能:

  • 启用此功能可能会更改 IP 层和 DLPI 提供器之间的所有包的外观。因此,使用 ifconfigmodinsert 功能(此功能无法识别 MDT STREAMS 数据类型)动态插入 IP 层和 DLPI 提供器之间的任何第三方 STREAMS 模块可能无法工作。

    使用 autopush(1m) 机制插入 IP 层和 DLPI 提供器之间的模块也可能无法工作。

  • 如果 STREAMS 模块无法识别 MDT,请将此功能保持为禁用状态。例如,ipfilter、Checkpoint Firewall-1 之类的公共域实用程序无法识别 MDT。

承诺级别

不稳定

ip_squeue_fanout (Solaris 10)

在 Solaris 10 6/06 发行版中,修改了此参数的说明。

说明 (Solaris 10)

确定将 TCP/IP 连接与 squeue 关联的模式。

值为 0 时会将新的 TCP/IP 连接与创建此连接的 CPU 进行关联。值 1 会将此连接与随机 CPU 进行关联,从而在系统中的所有 CPU 和所有 squeue 中有效分布负载。

说明 (Solaris 10 6/06 )

确定将 TCP/IP 连接与 squeue 关联的模式。

值为 0 时会将新的 TCP/IP 连接与创建此连接的 CPU 进行关联。值为 1 时会将此连接与属于不同 CPU 的多个 squeue 进行关联。用于扇出 (fanout) 连接的 squeue 数基于 ip_soft_rings_cnt

ip_soft_rings_cnt

此参数为 Solaris 10 6/06 发行版中的新增参数。有关更多信息,请参见ip_soft_rings_cnt

ip_squeue_write(Solaris 10 发行版)

在 Solaris 10 发行版中,此参数的名称已更改为 ip_squeue_enter。有关更多信息,请参见ip_squeue_enter

tcp_conn_hash_size(Solaris 9 发行版)

在 Solaris 10 发行版中,删除了此参数。

说明

控制 TCP 模块中用于 TCP 连接的散列表的大小。

数据类型

带符号整数

缺省值

512

范围

512 到 1,073,741,824

含义

值应该是 2 的幂。

是否为动态

否。只能在引导系统时更改此参数。

验证

如果将此参数设置为不是 2 的幂的值,则会向上舍入为最接近 2 的幂的数。

何时更改

如果系统始终具有数万个 TCP 连接,请相应地增大该值。使用缺省值时,TCP 最多可以执行数千个活动连接。请注意,增加散列表大小意味着占用更多内存,因此,请设置适当的值以免造成不必要的内存浪费。

承诺级别

不稳定

tcp_wscale_always(Solaris 9 发行版)

在 Solaris 10 发行版中,已将此参数的缺省值更改为启用。有关更多信息,请参见tcp_wscale_always

ipc_tcp_conn_hash_size(Solaris 9 发行版)

在 Solaris 10 发行版中,删除了此参数。

说明

控制 IP 模块中用于所有活动(处于 ESTABLISHED 状态)的 TCP 连接的散列表的大小。

数据类型

无符号整数

缺省值

512

范围

512 到 2,147,483,648

含义

此参数应该是 2 的幂。

是否为动态

否。只能在引导系统时更改此参数。

验证

如果将此参数设置为不是 2 的幂的值,则会向上舍入为最接近 2 的幂的数。

何时更改

如果系统始终具有数万个活动 TCP 连接,请相应地增大该值。使用缺省值时,系统最多可以执行数千个活动连接。请注意,增加散列表大小意味着占用更多内存,因此,请设置适当的值以免造成不必要的内存浪费。

承诺级别

不稳定

tcp_compression_enabled(Solaris 9 发行版)

在 Solaris 10 发行版中,删除了此参数。

说明

如果设置为 1,则会压缩处于 TIME-WAIT 状态的 TCP 连接的协议控制块,以减小内存使用率。如果设置为 0,则不执行压缩操作。另请参见tcp_time_wait_interval

缺省值

1(启用)

范围

0(禁用)、1(启用)

是否为动态

何时更改

请勿禁用压缩机制。

承诺级别

不稳定

ip_forwardingip6_forwarding(Solaris 9 发行版)

在 Solaris 10 发行版中,这些参数已过时。

说明

控制 IP 在接口之间是进行 IPv4 转发还是进行 IPv6 转发。另请参见xxx:ip_forwarding(Solaris 9 发行版)

缺省值

0(禁用)

范围

0(禁用)或 1(启用)

是否为动态

何时更改

如果需要 IP 转发,请启用此参数。

承诺级别

不稳定

xxx:ip_forwarding(Solaris 9 发行版)

在 Solaris 10 发行版中,此参数已过时。

说明

针对特定的 xxx 接口启用 IPv4 转发。此参数的确切名称为 interface-name:ip_forwarding。例如,两个接口为 hme0hme1。以下是它们对应的参数名称:

hme0:ip_forwardinghme1:ip_forwarding

缺省值

0(禁用)

范围

0(禁用)或 1(启用)

是否为动态

何时更改

如果需要 IPv4 转发,请使用此参数针对每个接口启用转发功能。

承诺级别

不稳定

tcp_conn_req_max_q0(Solaris 8 发行版)

在更高的 Solaris 发行版中,何时更改文本已从:

何时更改

对于可能收到过多连接请求的应用程序(如 Web 服务器),可以增大缺省值以便与传入速率相匹配。

下面介绍了 tcp_conn_req_max_q0 与每个套接字的最大暂挂连接数之间的关系。

收到连接请求后,TCP 首先检查等待被接受的暂挂 TCP 连接(已执行三次握手)的数目 (N) 是否超过最大侦听器数。如果连接数过多,则会拒绝请求。如果连接数为允许数目,则 TCP 会检查未完成的暂挂 TCP 连接数是否超过 Ntcp_conn_req_max_q0 的总和。如果没有超过,则接受请求。否则,会删除最早未完成的暂挂 TCP 请求。

修改为:

何时更改

对于可能收到过多连接请求的应用程序(如 Web 服务器),可以增大缺省值以便与传入速率相匹配。

下面介绍了 tcp_conn_req_max_q0 与每个套接字的最大暂挂连接数之间的关系。

收到连接请求时,TCP 首先检查侦听器等待被接受的暂挂 TCP 连接(已执行三次握手)数目是否超过最大值 (N)。如果连接数过多,则会拒绝请求。如果连接数为允许数目,则 TCP 会检查未完成的暂挂 TCP 连接数是否超过 N 与 tcp_conn_req_max_q0 的总和。如果没有超过,则接受请求。否则,会删除最早未完成的暂挂 TCP 请求。