操作系统调整的基本概念:合适的操作系统调整通过防止错误条件的发生而能改善系统的性能。操作系统的错误经常降低了系统的性能。最经常出现的错误是TCP相关的参数,这些参数经常会使操作系统产生如下的错误:调在调用close_wait之后不能释放旧的socket。通常的错误提示是服务器端有“connection refused”,“too many open files”这样的错误,而在客户端的错误为“address in use:connect”。
大多数情况下,这些错误可以通过调整TCP的wait_time值和TCP队列大小来避免。下面是不同操作系统需要调整的参数。
1. Solaris 调整参数
1)使用ndd命令设置TCP的参数
下面是常用的TCP调整参数:
· /dev/tcp tcp_time_wait_interval
· /dev/tcp tcp_conn_req_max_q
· /dev/tcp tcp_conn_req_max_q0
· /dev/tcp tcp_ip_abort_interval
· /dev/tcp tcp_keepalive_interval
· /dev/tcp tcp_rexmit_interval_initial
· /dev/tcp tcp_rexmit_interval_max
· /dev/tcp tcp_rexmit_interval_min
· /dev/tcp tcp_smallest_anon_port
· /dev/tcp tcp_xmit_hiwat
· /dev/tcp tcp_recv_hiwat
· /dev/ce instance
· /dev/ce rx_intr_time
提示:使用netstat -s -P的tcp命令来查看所有可用的TCP参数。
设置TCP相关的调整参数请使用ndd命令,如下例所示:
ndd -set /dev/tcp tcp_conn_req_max_q 16384
2)设置/etc/system文件的参数
每个到服务器的socket连接都有一个文件描述符。为了优化socket的性能,需要配置操作系统拥有合适的文件描述符个数。因此,需要改变/etc/system 文件中的默认文件描述符限制,还有哈希表的大小和其他调整参数。
注意:修改了/etc/system 文件的参数后需要重新启动机器才能生效
· set rlim_fd_cur
· set rlim_fd_max
· set tcp:tcp_conn_hash_size
· set shmsys:shminfo_shmmax 注意:只有机器至少有4G RAM才能设置该项
· set autoup
· set tune_t_fsflushr
3)CE Gigabit网卡的设置
· set ce:ce_bcopy_thresh
· set ce:ce_dvma_thresh
· set ce:ce_taskq_disable
· set ce:ce_ring_size
· set ce:ce_comp_ring_size
· set ce:ce_tx_ring_size
其他Solaris调整信息:
· Solaris Tunable Parameters Reference Manual (Solaris 8)
· Solaris Tunable Parameters Reference Manual (Solaris 9)
· Solaris Tunable Parameters Reference Manual (Solaris 10)
2 Liunx参数调整
主要调整的参数:
· /sbin/ifconfig lo mtu
· kernel.msgmni
· kernel.sem
· fs.file-max
· kernel.shmmax
· net.ipv4.tcp_max_syn_backlog
Ipsysctl Tutorial 1.0.4 描述了Liunx上的IP选项。
3 HP-UX参数调整
主要调整的参数:
· tcp_conn_req_max
· tcp_xmit_hiwater_def
· tcp_ip_abort_interval
· tcp_rexmit_interval_initial
· tcp_keepalive_interval
更多HP-UX调整信息,请参考 Tunable Kernel Parameters
4 Windows参数调整
Windows平台的默认设置一般是够用的,但是可能在重负载情况下会需要调整MaxUserPort和TcpTimedWaitDelay。这些参数决定了应用程序请求的端口的使用。
默认的短期端口使用MaxUserPort参数在1024-5000之间分配。TcpTimedWaitDelay参数默认值是4m,该参数用来控制操作系统在关闭一个TCP连接后收回端口的等待时间。在重负在情况下,系统会超过这些限制而导致“address in use:connet ”异常。可以通过修改注册表键值来修改这两个参数。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters key:
MaxUserPort = dword:00004e20 (20,000 decimal)
TcpTimedWaitDelay = dword:0000001e (30 decimal)
可以增大MaxUserPort和减小TcpTimedWaitDelay。更多的信息可以参考:
Microsoft Windows 2000 TCP/IP Implementation Details.
Windows 2000 Performance Tuning
5.其他操作系统调整信息
· AIX 调整信息:AIX 5L Version 5.2 Performance Management Guide.
· 用户进程的最大内存— 检查该系统规定的最大用户进程可使用的内存.有些操作系统这个值低于128 MB.关于内存管理的信息,可以参考 Tuning Java Virtual Machines (JVMs).
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/