特定于接口的网络选项
必须专门对 TCP/IP 接口进行调整才能达到良好的高速网络性能(100 Mb 或更快)。 此效果是复杂的,因为事实上,单个系统上可以使用多个网络接口和一个传统和高速 TCP/IP 接口的组合。
在 AIX® 操作系统中, "特定于接口的网络选项" (ISNO) 允许系统管理员分别调整每个 TCP/IP 接口以获得最佳性能。
每个受支持的接口有 5 个 ISNO 参数:rfc1323、tcp_nodelay、tcp_sendspace、tcp_recvspace 和 tcp_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 数据库中的值因此它们在随后的重新引导中使用。 lsattr 或 ifconfig 命令能用来显示当前值。
以下示例显示的命令首先可用于验证系统和接口支持,然后可用于设置和验证新值。
- 使用 no 和 lsattr 命令验证常规系统和接口支持。
- 使用如下命令确保 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
- 使用如下命令确保 use_isno 选项已启用:
- 使用 ifconfig 或 chdev 命令设置接口特殊值。 ifconfig 命令暂时设置值,推荐用于测试。 chdev 命令改变 ODM,因此在重新引导之后定制值保持有效。
- 设置 tcp_recvspace 和 tcp_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
- 设置 tcp_recvspace 和 tcp_sendspace 为 64K 并启用 tcp_nodelay 通过使用以下命令之一:
- 使用 ifconfig 或 lsattr 命令来验证设置,如以下示例中所示:
$ 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