1.TCP_TIME_WAIT_INTERVAL
- 描述:通知 TCP/IP 将已关闭的连接控制块保留多久。在应用程序完成 TCP/IP 连接后,控制块将保留指定的时间。当连接比率较高时,这将累积大量的 TCP/IP 连接,从而导致服务器性能下降。服务器在某些峰值期间会延迟。如果服务器延迟,netstat 命令显示对 HTTP Server 打开的许多套接字处于 CLOSE_WAIT 或 FIN_WAIT_2 状态。明显的延迟可能会长达 4 分钟,其间服务器无法发送任何响应,但是 CPU 利用率保持很高,所有活动都在系统进程中。
- 如何查看或设置:使用 get 命令来确定当前时间间隔,并使用 set 命令将时间间隔指定为 30 秒。例如:
ndd -get /dev/tcp tcp_time_wait_interval ndd -set /dev/tcp tcp_time_wait_interval 30000
- 缺省值:对于 Solaris 操作系统,缺省等待时间间隔为 240000 毫秒(即 4 分钟)。
- 建议值:60000 毫秒。
2.TCP_FIN_WAIT_2_FLUSH_INTERVAL
- 描述:指定禁止处于 FIN_WAIT_2 状态的连接保持该状态的计时器时间间隔。当连接比率较高时,这将累积大量的 TCP/IP 连接,从而导致服务器性能下降。在高峰时间段,服务器会发生延迟。如果服务器延迟,netstat 命令显示对 HTTP Server 打开的许多套接字处于 CLOSE_WAIT 或 FIN_WAIT_2 状态。明显的延迟可能会长达 4 分钟,其间服务器无法发送任何响应,但是 CPU 利用率保持很高,所有活动都在系统进程中。
- 如何查看和设置:使用 get 命令来确定当前时间间隔,并使用 set 命令将时间间隔指定为 67.5 秒。例如,
ndd -get /dev/tcp tcp_fin_wait_2_flush_interval ndd -set /dev/tcp tcp_fin_wait_2_flush_interval 67500
- 缺省值:675000 毫秒
- 建议值:67500 毫秒
3.TCP_KEEPALIVE_INTERVAL
- 描述:“保持活动”包确保连接保持活动和已建立状态。
- 如何查看或设置:使用 ndd 命令来确定当前值或设置该值。例如:
ndd -set /dev/tcp tcp_keepalive_interval 300000
- 缺省值:7200000 毫秒
- 建议值:15000 毫秒
- 描述:当由于入局连接请求比率过高而导致连接故障时,请更改下列参数:
ndd -get /dev/tcp tcp_conn_req_max_q ndd -set /dev/tcp tcp_conn_req_max_q 8000
- 缺省值:对于 Solaris 8 来说,缺省值是 128。
- 建议值:8000
windows 系统
TcpTimedWaitDelay 项确定在 TCP 释放已关闭的连接并重用其资源之前必须经过的时间。关闭和释放之间的这段间隔称为 TIME_WAIT 状态或 2MSL 状态。在此期间,可以重新打开连接,对客户端和服务器来说这比建立新连接的成本要低得多。
如果减小此项的值,则允许 TCP 更快地释放已关闭的连接,从而为新连接提供更多的资源。但是,如果该值过小,则 TCP 可能会在连接完成之前释放连接资源,要求服务器使用其他资源重新建立连接。
将 TcpTimedWaitDelay 注册表项设置为其默认值
打开注册表编辑器,如 Regedit.exe 或 Regedt32.exe。
导航到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
双击 TcpTimedWaitDelay,然后将“数值数据”<!---->字段设置为 60(十进制)。
关闭注册表编辑器,然后重新启动计算机。