性能调优之操作系统的调整

发表于:2008-06-12来源:作者:点击数: 标签:性能操作系统调整
本文翻译自:http://e-docs.bea.com/wls/docs90/perform/OSTuning.html 不对之处请指正。 操作系统调整的基本概念:合适的操作系统调整通过防止错误条件的发生而能改善系统的 性能 。操作系统的错误经常降低了系统的性能。最经常出现的错误是TCP相关的参数,
本文翻译自:http://e-docs.bea.com/wls/docs90/perform/OSTuning.html 不对之处请指正。

  操作系统调整的基本概念:合适的操作系统调整通过防止错误条件的发生而能改善系统的性能。操作系统的错误经常降低了系统的性能。最经常出现的错误是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).

原文转自:http://www.ltesting.net