Configurables

Configurables are used to set parameters that customize Helix Core behavior. For details about each configurable, including whether it affects the server, client, or proxy, see the Configurables reference.

To modify the value of a configurable, you must be a user with the appropriate access levelClosed A permission assigned to a user to control which commands the user can run. See also the 'protections' entry in this glossary and the 'p4 protect' command in the Helix Core Command-Line (P4) Reference. . A typical way to set a configurable is to use the p4 configure command, which requires the super access level and is also available to an operator user.

To learn how to set configurables, see:

See also: Environment and registry variables.

Set server configurables

p4 configure show displays the current configuration of this server.

A user with the super access level (or an operator user) can set or unset configurables that affect a Helix Core Server. These configurables are also described in p4 help configurables. For options for setting server configurables, see p4 configure.

The DistributedConfig field of the server spec shows a line for each configurable that is set to a non-default value. In this field, you can edit the value, add a new line to set a different configurable to a non-default value, or delete a line to reset that configurable to its default value.

p4 configure history allows the super user to track the history of changes to the values of configurables.

You can set configurables that affect the server by using the following methods, which are shown in order of precedence, where 1 overrides 2, 2 overrides 3, and 3 overrides 4:

Precedence

How the value is set

Persistent configuration?
1

Command line "-v" options that are passed at server startup. For example:

p4d -v net.keepalive.idle=2700
No, but the option can be supplied each time the server is started,
2

Using the p4 configure set command to set the specified configurable or environment variable for a named server or for any server. A configurable set for a named server overrides on that particular server a configurable set for any server. See Viewing the values of configuration variables on all servers.

Yes
3

Using environment variables.

  • For Windows, use p4 set-S Perforce, such as
    p4 set -S Perforce P4DEBUG="net.keepalive.idle=2700" and the value will persist.
  • On Unix, use the export command, which does not persist.
Yes only for Windows

Server restart required for some configurables

Most configurables can be set dynamically. However, some configurables require the server to be stopped and restarted. In the alphabetical list of configurables, look for this Note:

(missing or bad snippet)

Set client configurables

You can set configurables that affect the client by using the following methods, which are shown in order of precedence, where 1 overrides 2, 2 overrides 3, and 3 overrides 4. For example, values set in a P4CONFIG file override those set in a P4ENVIRO file.

Precedence Method Persistent configuration?
1 Command line global options. No
2

Entries in the file specified by P4CONFIG can store both configurables and Environment and registry variables.

Use the P4CONFIG file when you want to assign values that apply to a specific workspace. For example, to turn off net.autotune for a client, add the line net.autotune=0 to the P4CONFIG file.

Yes
3

Entries in the P4ENVIRO file, a file that is similar to a P4CONFIG file except that P4ENVIRO is for values that default to being constant for all projects within your depot.

Yes
4 p4 set command for Windows and macOS. Yes

Set proxy configurables

You can set configurables that affect the proxy in the following ways:

Precedence Method Example Persistent configuration?
1 Command line options.
p4p -p tcp64:[::]:1999 -t central:1666 -r /var/proxyroot -v proxy.monitor.level=2
No
3 p4 set command for Windows
p4 set -S "Perforce Proxy" P4DEBUG=net.keepalive.idle=2800
Yes