性能调优之操作系统的调整(loadrunner)

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