Network

Helix Server can run over any TCP/IP network. For remote users or multi-server configurations, Perforce offers options like proxies and the commit/edge architecture that can enhance performance over a WAN. Compression in the network layer can also help.

Helix Server uses a TCP/IP connection for each client interaction with the server. The server’s port address is defined by P4PORT, but the TCP/IP implementation picks a client port number. After the command completes and the connection is closed, the port is left in the TCP TIME_WAIT state, typically for two minutes. The port number ranges from 1025 to 32767 (or larger). Therefore, it is possible to occupy all available ports by invoking a Helix Server command many times in rapid succession, such as with a script.

TCP keepalive

By default, keepalives are enabled if that functionality is supported by the OS. If your network silently drops idle connections, users might experience unexpected connectivity issues. The following Helix Core Server configurables override the behavior configured in the operating system:

For a general explanation of keepalive technology, see:

http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html

http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html

Enable autotune

If you have Linux, setting the net.autotune configurable might improve network performance:

p4 configure set net.autotune=1

Some operating systems might not work well with this value, so make sure that this setting does not cause Helix Core Server to hang.

This configurable only affects the Helix Core Server instance it is set on.

See the details of the net.autotune configurable.