性能調優之操作系統的調整(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).