特定于接口的网络选项

必须专门对 TCP/IP 接口进行调整才能达到良好的高速网络性能(100 Mb 或更快)。 此效果是复杂的,因为事实上,单个系统上可以使用多个网络接口和一个传统和高速 TCP/IP 接口的组合。

在 AIX® 操作系统中, "特定于接口的网络选项" (ISNO) 允许系统管理员分别调整每个 TCP/IP 接口以获得最佳性能。

每个受支持的接口有 5 个 ISNO 参数:rfc1323tcp_nodelaytcp_sendspacetcp_recvspacetcp_mssdflt。 当设置时,用于这些参数的值会覆盖同名的已经用 no 命令设置的系统范围的参数。 当没有给一个特殊接口设置 ISNO 选项时,会使用系统范围的选项。 当选项已经由一个用于特殊套接字的应用程序用 setsockopt 子例程设置时,此选项会覆盖 ISNO。

网络选项 use_isno(使用 no 命令设置)必须具有值 1 才能使 ISNO 生效。 use_isno 的缺省值是 1。

一些高速适配器有由 ODM 数据库中的缺省值设置的 ISNO 参数。

千兆以太网接口,当配置以使用一个 9000 的 MTU 时,缺省情况下使用以下 ISNO 值:

姓名 AIX 4.3.3 AIX 4.3.3 (4330-08) AIX 5.1 (及更高版本) 值
tcp_sendspace 131072 262144 262144
tcp_recvspace 92160 131072 131072
rfc1323 1 1 1

千兆以太网接口,当配置以使用一个 1500 的 MTU 时,缺省情况下使用以下 ISNO 值:

姓名 AIX 4.3.3 AIX 4.3.3 (4330-08) AIX 5.1 (及更高版本) 值
tcp_sendspace 65536 131072 131072
tcp_recvspace 16384 65536 65536
rfc1323 0 未设置 未设置

FDDI 接口,当置以使用一个 4352 的 MTU 时,缺省情况下使用以下 ISNO 值:

姓名
tcp_sendspace 45046
tcp_recvspace 45046

ISNO 参数不能被使用 SMIT 来显示或更改。 它们能使用 chdev 命令或 ifconfig 命令设置。 ifconfig 命令只有在下次重新引导时才会更改值。 chdev 命令更改在 ODM 数据库中的值因此它们在随后的重新引导中使用。 lsattrifconfig 命令能用来显示当前值。

以下示例显示的命令首先可用于验证系统和接口支持,然后可用于设置和验证新值。

  1. 使用 nolsattr 命令验证常规系统和接口支持。
    • 使用如下命令确保 use_isno 选项已启用:
      $ no -a | grep isno 
                use_isno=1
    • 确保该接口使用 lsattr -El 命令支持五个新的 ISNO ,如下所示:
      $ lsattr -E -l en0 -H 
                attribute   value  description 
                rfc1323                      N/A 
                tcp_nodelay                  N/A 
                tcp_sendspace                N/A 
                tcp_recvspace                N/A 
                tcp_mssdflt                  N/A
  2. 使用 ifconfigchdev 命令设置接口特殊值。 ifconfig 命令暂时设置值,推荐用于测试。 chdev 命令改变 ODM,因此在重新引导之后定制值保持有效。
    • 设置 tcp_recvspacetcp_sendspace 为 64K 并启用 tcp_nodelay 通过使用以下命令之一:
      $ ifconfig en0 tcp_recvspace 65536 tcp_sendspace 65536 tcp_nodelay 1 
      $ chdev -l en0 -a tcp_recvspace=65536 -a tcp_sendspace=65536 -a tcp_nodelay=1
    • 或者,假定 no 命令报告 rfc1323=1 全局值,那么 root 用户可以使用以下命令对 en0 上的所有连接关闭 rfc1323 :
      $ ifconfig en0 rfc1323 0 
      $ chdev -l en0 -a rfc1323=0
  3. 使用 ifconfiglsattr 命令来验证设置,如以下示例中所示:
    $ ifconfig en0 <UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT>
              en0: flags=e080863  
                  inet 9.19.161.100 netmask 0xffffff00 broadcast 9.19.161.255 
                  tcp_sendspace 65536 tcp_recvspace 65536 tcp_nodelay 1 rfc1323 0 
    $ lsattr -El en0 
              rfc1323         0           N/A               True 
              tcp_nodelay     1           N/A               True 
              tcp_sendspace   65536       N/A               True 
              tcp_recvspace   65536       N/A               True 
              tcp_mssdflt                 N/A               True