Tips For Max Performance
Tips For Max Performance
First is to have at least two machines for the test. The user interface consum
es significant resources so the RPT playback engine must run on a machine (agent
) separate from the workbench (UI).
Next is memory. To access maximum heap, after one successful test of any size,
look at the location (agent) attributes. There should be one called RPT_DEFAULT
_MEMORY_SIZE. If not, you can specify a maximum heap by creating a new attribut
e: RPT_VMARGS=-Xmx1500m (for example).
Windows XP & 2003 TCP/IP Tuning Recommendations
- On Windows drivers the limit is typically 5000 ports
- Use the netstat -a command to observe port usage during run
- If the largest number you see is 5000 then you have a problem!
- You can increase it by adding a registry entry
(need to reboot for it to take effect!)
- HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > Tcpip > Para
meters > MaxUserPort
(dword, default is 5000, max is 65534)
Windows 7, 8, 2008 and Vista TCP/IP Tuning Recommendations
- Default dynamic port range changed
- New default start port is 49152 and default end port is 65535
16,384 ports (not 5000)
- Viewing the dynamic port range
Start Command Prompt and use the netsh command
netsh int ipv4 show dynamicport tcp
- Changing the dynamic port range for maximum number of ports allowed
netsh int ipv4 set dynamicport tcp start=1025 num=64510
Minimum start port is 1025 and maximum end port cannot exceed 65535
- Reboot not required
- See http://support.microsoft.com/kb/929851
Additional TCP/IP tuning recommendations:
HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > Tcpip > Parame
ters > PARAMETER_NAME
MaxFreeTcbs
dword:00011940 (72000)
MaxHashTableSize
dword:0000ffff (65535)
TcpTimedWaitDelay
dword:0000001e (30)
TcpWindowSize
dword:0000ffff (65535)
EnableDynamicBacklog
dword:00000001 (1)
MinimumDynamicBacklog
dword:00000020 (20)
MaximumDynamicBacklog
dword:00001000 (4096)
DynamicBacklogGrowthDelta dword:00000010 (16)
Must reboot for these changes to take effect!
MaxFreeTcbs
Determines the number of TCP control blocks (TCBs) the system creates to
support active connections. Because each connection requires a control block,
this value determines how many active connections TCP can support
simultaneously.
Normally, TCP does not release a connection or reuse its resources until the
connection has remained closed for a period specified by the value of the
TcpTimedWaitDelay entry. This interval is known as the TIME_WAIT or
2MSL (2 x maximum segment lifetime) state. However, if the system is supporting
an unusually large number of connections and is running short of connection
resources, TCP releases the connection before the value stored in the
connections.
MinimumDynamicBacklog
Request a minimum 20 available pending connections.
MaximumDynamicBacklog
Request a maximum 1000 available pending connections.
DynamicBacklogGrowthDelta
The number of available connections is increased by 10 each time that there are
fewer than the minimum number of available connections.
TCP/IP Acknowledgements
TCP/IP can be the source of some significant remote method delays. You can
increase TCP performance by immediately acknowledging incoming TCP segments,
in all situations.
To immediately acknowledge incoming TCP segments on a server that runs a
Microsoft Windows XP or Windows Server 2003 operating system:
1. Start the Registry Editor (regedit.exe).
2. Locate and then click the following registry subkey: [may2010]
Windows XP
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfa
ces\
Windows Server 2003
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfa
ces\Interface_GUID\
3.
4.
5.
6.
==============================================================================
Linux
Linux boxes need per process open file limit higher than 1024.
Changing Linux settings:
- Edit /etc/sysctl.conf specifying parameters and values below.
- Run sysctl -p
net.ipv4.ip_local_port_range
net.core.rmem_default
net.core.wmem_default
net.core.wmem_max
net.core.rmem_max
net.core.netdev_max_backlog
net.ipv4.tcp_no_metrics_save
net.ipv4.tcp_rmem
net.ipv4.tcp_wmem
net.core.optmem_max
net.ipv4.ip_local_port_range
TCP/IP port range.
net.core.rmem_default
Default O/S receive buffer size.
2048 65000
262144
262144
33554432
33554432
5000
1
4096 16777216 33554432
4096 16777216 33554432
40960
net.core.wmem_default
Default O/S send buffer size.
net.core.wmem_max
Maximum O/S send buffer size.
net.core.rmem_max
Maximum O/S receive buffer size.
net.core.netdev_max_backlog
Incoming packet receive backlog queue size.
net.ipv4.tcp_no_metrics_save
Value of 1 means have the O/S optimize TCP receive
window size dynamically between tcp_rmem and tcp_wmem.
net.ipv4.tcp_rmem
Receive window memory vector.
net.ipv4.tcp_wmem
Send window memory vector.
net.core.optmem_max
Maximum buffer size per socket.
==============================================================================
AIX
Changing AIX settings:
- no -p -o <parameter>=<value>
- chdev -l sys0 -a maxuproc=<value>
sb_max
clean_partial_conns
tcp_timewait
tcp_keepidle
tcp_keepinit
tcp_nodelayack
tcp_keepintvl
maxuproc
tcp_sendspace
tcp_recvspace
tcp_ephemeral_low
rfc1323
6192000
1
1
600
40
1
10
8192
4096000
4096000
1024
1
sb_max
Upper limit for the number of socket buffers queued to an individual socket.
clean_partial_conns
Value of 1 provides some protection against SYN attacks.
tcp_timewait
Amount of time allowed in TIME_WAIT. Value of 1 means 15 seconds.
tcp_keepidle
Ensure connection stays in active/ESTABLISHED state. Value of 600 is 5 minutes.
tcp_keepinit